2011-09-13 39 views
34

Tôi đã làm việc trên một ứng dụng dựa trên vị trí gần đây và tôi nhận thấy một số giá trị kỳ lạ cho CLLocation. Tôi thường nhận được độ chính xác ngang 1414m và độ chính xác theo chiều dọc là -1. Bất kỳ đầu mối những gì điều này chỉ ra? Theo như tôi có thể nói, những điểm này thường rất chính xác. Sự khác nhau giữa verticalAccuracy và horizontalAccuracy là gì?Điều gì làm tăng độ chính xác và độ chính xác theo chiều dọc của CLLocation?

Trả lời

61

-1 cho verticalAccuracy cho biết rằng độ cao trong CLLocation không hợp lệ. Bạn chỉ nhận được độ cao với một vị trí GPS 3D.

1414 cho horizontalAccuracy cho biết vị trí nằm ngang (vĩ độ/vĩ độ) có thể lên đến 1414m (đây chỉ là lỗi ước tính). Đây có lẽ là một vị trí được xác định bởi dữ liệu vị trí WiFi hoặc dữ liệu vị trí WiFi. Vị trí GPS thường báo cáo 100m hoặc tốt hơn.

Để có vị trí chính xác cao hơn (300m hoặc tốt hơn), bạn cần đặt desiredAccuracy và đợi bộ thu GPS khóa ít nhất 3 vệ tinh (hoặc 4 để sửa 3D). Cho đến khi điều đó xảy ra, CLLocationManager sẽ mang đến cho bạn kết quả tốt nhất là kết nối Wi-Fi hoặc tháp di động.

+5

Aha! Tôi đã rất bối rối và suy nghĩ trong một hệ tọa độ 2D. Tôi nghĩ rằng "verticalAccuracy" là độ chính xác theo chiều dọc và "horizontalAccuracy" là độ chính xác theo chiều dọc! Nó sẽ có ý nghĩa để thay đổi câu hỏi của tôi để phản ánh sự nhầm lẫn này bằng cách nào đó? –

+3

Tôi không nghĩ rằng bạn cần phải thay đổi câu hỏi của bạn, Alex. Tôi đã có chính xác cùng một câu hỏi và tìm kiếm của tôi mang lại cho tôi ở đây - trả lời nó - cảm ơn :-) – philsquared

+6

Để xây dựng, có vẻ như là 1414 là hằng số CLLocationManager cho nếu nó đã xác định vị trí của bạn dựa trên triangulation tháp di động. Trong thử nghiệm của tôi, nếu nó đã xác định vị trí của bạn dựa trên wifi nó cho một độ chính xác ngang 65m. – bearMountain

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