2009-02-24 32 views
6

Tôi đang thử nghiệm với việc thêm chức năng GPS vào ứng dụng iPhone của mình. Đó là một ứng dụng tập luyện sẽ được sử dụng trong khi đi bộ hoặc chạy. Vì vậy, những gì tôi muốn sử dụng GPS cho là để hiển thị tốc độ mà người đang di chuyển trong Mph và phút/dặm.iPhone CoreLocation: Cách nhận được tốc độ chính xác nhất

Tôi nên định cấu hình CLLocationManager để tôi nhận được kết quả tốt nhất có thể như thế nào? Tôi nên đặt mức độ mong muốn và độ lệch?

Tôi đã thử với:

distanceFilter = 10 và desiredAccuracy = kCLLocationAccuracyNearestTenMeters

và đọc

tài sản CLLocation.speed

Kiểm tra trong khi lái xe xung quanh trong xe của tôi về tính chính xác có vẻ tốt so với đồng hồ tốc độ xe mặc dù phải mất một thời gian để cập nhật. Tôi nhận thấy rằng sự chậm trễ cập nhật có thể rất tốt là thời gian cần để truy vấn vị trí GPS, nhưng tôi không chắc chắn nếu thay đổi hai thông số trên sẽ cho kết quả tốt hơn.

Tôi có nên sử dụng kCLLocationAccuracyBest và một số giá trị khác cho distanceFilter không?

Tôi muốn nghe từ những người khác sử dụng CoreLocation để tăng tốc. Bạn đang làm gì để có kết quả chính xác hơn?

Trả lời

3

Tuyên bố từ chối trách nhiệm: Tôi chỉ chơi với CoreLocation một chút, tôi đã không kiểm tra độ chính xác rất chặt chẽ.

Tôi mong rằng bạn sẽ nhận được kết quả chính xác nhất bằng cách sử dụng giá trị mặc định cho khoảng cáchFilter và mong muốnĐộ chính xác. Cập nhật ít thường xuyên hơn sẽ chỉ cung cấp cho bạn ít dữ liệu hơn để làm việc.

Một vấn đề mà bạn có khả năng gặp phải là khi sửa chữa vị trí bị mất một lúc, sau đó quay lại. Cách tiếp cận ngây thơ, kết nối-các-dấu chấm để tìm ra khoảng cách đi du lịch sẽ có xu hướng ước tính thấp hơn tốc độ thực tế của nhân vật. Thay vì sử dụng CLLocation.speed, bạn có thể nhận được kết quả tốt hơn tính toán tốc độ dựa trên một số xấp xỉ heuristic cho dòng runner thực sự là sau.

5

Để có kết quả tốt nhất, bạn nên sử dụng kCLLocationAccuracyBest. Những gì bạn đưa vào bộ lọc khoảng cách của bạn phụ thuộc vào những lỗi mà bạn sẵn sàng đặt. Về cơ bản, bạn sẽ phải đưa ra quyết định dựa trên độ chính xác so với tính khả dụng. Đó là, trong thời gian không có câu trả lời chính xác nhất, bạn sẽ hiển thị những gì?

Một cách tiếp cận là để điện thoại cung cấp các câu trả lời ít chính xác hơn và sử dụng phép chiếu những gì đang diễn ra vào lần cuối cùng bạn có thông tin chính xác nhất, xem bạn có ý nghĩa gì không.

Tức là, tôi đang chạy bộ ở 6phút ở hướng Bắc. Bạn âm mưu tôi theo điểm A, điểm B, điểm C ... sau đó bạn nhận được một câu trả lời chính xác thấp (có thể kCLLocationAccuracyNearest100Meters.) Nhìn vào chỗ nó nói tôi và tìm ra "tôi có thể nhận được rằng tại chỗ từ điểm C nếu tôi tiếp tục theo con đường hiện tại của mình, điều chỉnh hợp lý cho những thay đổi có thể về tốc độ? " Nếu vậy, thì điểm mới nằm trong phạm vi của khả năng. (Nếu không, sau đó quăng nó ra.) Sau đó, dự án từ điểm C ở tốc độ cuối cùng của tôi và tìm ra nơi bạn nghĩ rằng tôi có thể là, ballistically. Lưu nó như là đạn đạo-điểm-D.

Tất nhiên, bạn đang sử dụng gia tốc kế để có được một số loại cảm giác quán tính theo cách tôi đã đi, phải không?Vì vậy, bạn không thể biết hướng (bạn không biết cách điện thoại đang trỏ), nhưng bạn có thể thực hiện một đâm hợp lý ở khoảng cách.

Sử dụng tất cả thông tin này, vẽ sơ đồ vị trí có khả năng nhất mà bạn nghĩ tôi có thể đang ở.

LƯU Ý: Khi thử nghiệm, không chỉ lái xe trong khu vực phủ sóng tốt. Xem cách ứng dụng của bạn hoạt động trên các ngọn đồi, cách xa điện thoại di động. Rất nhiều người thích đạp xe & chạy bộ những khu vực đó!

Các vấn đề liên quan