2009-07-28 9 views
5

Chciałbym używać wiarygodnych lokalizacji, nawet na starym iPhonie. Jednak wiele odczytów (szczególnie z wież komórkowych) jest zbyt niedokładnych. Myślę.Jak dokładna jest dokładność CLLocation?

Kiedy wykreślam swoją pozycję + promień dokładności (lub patrzę na aplikację map Google), zauważam, że środek oszacowanego koła jest generalnie blisko mojej fizycznej lokalizacji. Zgaduję, że jeśli zmniejszę liczbę "dokładności" o połowę, nadal będę w kręgu w 99% przypadków.

Uważam, że jest to gra probabilistyczna - menedżer ds. Lokalizacji stara się podać szacunkową wartość wynoszącą 99,99999% czasu, więc daje rozmyślnie szeroki margines. Wszelkie myśli/informacje?

Odpowiedz

0

Kiedy używasz CoreLocation, otrzymujesz "odpowiedzi", które są coraz lepsze. Zauważyłem, że "najlepsza" odpowiedź jest prawie zawsze dokładna z dokładnością do 100 m, więc teoretycznie można by prawdopodobnie zmniejszyć "bufor", który normalnie jest dany. Jedynym sposobem, aby naprawdę wiedzieć, a jest to, co zrobię, to przetestować test testowy. Znajdź iPhone'y i iPody ze wszystkich generacji i zobacz, jakie typy dokładności uzyskujesz i jakie typy wyników uzyskujesz. Pod wieloma względami zależy to od rodzaju tworzonej aplikacji, ale jeśli chcesz dostarczać wrażliwe lub ważne informacje w zależności od tego, gdzie jest użytkownik, powinieneś naprawdę poczekać, aż schemat da ci prawie dokładną lokalizację.

+0

Jestem skłonny czekać na najlepszą możliwą lokalizację. Moje obawy są bardziej "dokładnie jak dokładne jest to zgłaszane miejsce?". Moim zdaniem wszystkie stwierdzone dokładności (1000m, 10m, itp.) Są tendencyjne. – BankStrong

+0

I masz rację, z oczywistych powodów. – TahoeWolverine

2

Ramy CoreLocation dają promień okręgu dla każdej CLLocation otrzymanej za pomocą właściwości horizontalAccuracy/verticalAccuracy. Można podać do CLLocationManager właściwość desiredAccuracy które korzystają z tych typów:

kCLLocationAccuracyNearestTenMeters, kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers;

więc dostajesz powiadomienia, gdy pojawi się wewnątrz pożądanego zakresu. To powiedziawszy, kiedy używasz CLLocationManager, pierwsze zdarzenie jest przekazywane do ciebie JAK NAJSZYBCIEJ, a następnie zdarzenia postępowania są tymi, które spełniają twoje warunki.

+0

Jestem mniej skoncentrowany na pytaniu o pożądaną dokładność i bardziej zainteresowany poznaniem "prawdziwej" dokładności. Kiedy CoreLocation powie "ta lokalizacja jest dobra w promieniu 100 metrów", czy to naprawdę oznacza "ta lokalizacja będzie w ciągu 50 metrów 99,9% czasu"? – BankStrong