Jak mierzy się dokładność lokalizacji w systemie Android?


95

Czy ktoś zna poprawną interpretację pomiarów dokładności zwracanych przez getAccuracy ()? Na przykład, czy są one obliczane jako:

  • Prawdopodobieństwo błędu kołowego (co oznacza, jeśli dobrze rozumiem, promień koła ufności 50%)?

  • Promień 95% koła ufności?

  • coś innego?

Ponadto, jakie są rzeczywiste obliczenia, które są używane i jak bardzo możemy na nich polegać? Czy zależy to od źródła oszacowania lokalizacji (GPS vs sieć)?

Wielkie dzięki za każdą radę, którą możesz mi dać.


4
Nie chodziło o to, w jaki sposób uzyskuje się lokalizację, ale o rzeczywistą definicję zwracanej wartości getAccuracy w klasie lokalizacji.
Janusz

Odpowiedzi:


67

Aby odpowiedzieć na jedną część pytania, liczba ta the radius of 68% confidence,oznacza, że ​​istnieje 68% prawdopodobieństwa, że ​​prawdziwa lokalizacja znajduje się w promieniu mierzonego punktu w metrach. Zakładając, że rozkład błędów jest normalny (co, jak mówią doktorzy, niekoniecznie jest prawdą), oznacza to, że jest to jedno odchylenie standardowe. Na przykład, jeśli Location.getAccuracyzwróci 10, to istnieje 68% prawdopodobieństwa, że ​​rzeczywista lokalizacja urządzenia znajduje się w promieniu 10 metrów od podawanych współrzędnych.

http://developer.android.com/reference/android/location/Location.html#getAccuracy ()


Dzięki, Karl. Widzę, że zaktualizowali teraz dokumentację, co jest bardzo pomocne. Właśnie tego szukałem, chociaż myślę, że punkt dscheffy'ego jest również ważny.
John RB Palmer

@paracycle Dobrze jest też powiedzieć, że dokładność jest zgłaszana przez dostawcę, który ostatecznie może zdecydować, jak sobie z tym poradzić. Na przykład użycie DDMS zapewni dokładność o wartości 0,0, ponieważ wprowadzasz dokładną współrzędną.
karl

11
@AidenStrydom, nie. Jeśli dokładność zwraca 1000, oznacza to, że istnieje 68% prawdopodobieństwa, że ​​rzeczywista lokalizacja znajduje się w promieniu 1000 metrów od podanej lokalizacji.
karl

Czy pogoda ma wpływ na dokładność?
Juri Tichomirow

@karl czy masz na myśli, że 32% przekracza 10 metrów? (np. 11 lub 12 lub więcej metrów).
david

44

Lokalizacja jest trudnym zadaniem, gdy masz ograniczoną żywotność baterii i nie ma sygnału GPS w budynkach, na obszarach z wieloma dużymi budynkami itp. Ale Android znacznie ułatwia. Gdy żądasz lokalizacji, wystarczy określić, jakiej dokładności potrzebujesz.

Jeśli określisz, że chcesz accuracyna przykład *100 meters*, Android spróbuje uzyskać lokalizację i jeśli może uzyskać lokalizację z dokładnością do 70 metrów, zwróci Ci ją, ale jeśli Android może uzyskać lokalizację z dokładnością większą niż 100 metrów, aplikacja będzie czekać i nic nie otrzyma, dopóki nie znajdzie się miejsce z taką dokładnością.

Zwykle Android najpierw pobiera identyfikator komórki, a następnie wysyła go do serwera Google, który mapuje takie identyfikatory komórek, a serwer zwraca szerokość i długość geograficzną z dokładnością, która jest niska na przykład 1000 metrów. Do tego czasu Android spróbuje również zobaczyć wszystkie sieci WiFi w okolicy i prześle informacje o nich również na serwer Google i jeśli to możliwe, serwer Google zwróci nową lokalizację z większą dokładnością, na przykład 800 metrów.

W tym czasie GPS będzie włączony. Urządzenie GPS potrzebuje co najmniej 30 sekund od zimnego startu, aby uzyskać pozycję, więc jeśli uda się to naprawić, zwróci szerokość i długość geograficzną, ale ponownie z dokładnością, która będzie najwyższa z możliwych na przykład 100 metrów. Im dłużej działa GPS, tym lepszą dokładność uzyskasz.

Ważna uwaga: pierwsze dwie metody wymagają połączenia z Internetem. Jeśli nie ma połączenia danych, będziesz musiał poczekać na GPS, ale jeśli urządzenie jest w budynku, prawdopodobnie nie uzyskasz lokalizacji.


14
To tak naprawdę nie odpowiada na pytanie, co oznacza „dokładność 100 m”.
Tomas

2
@vendor, czy możesz podać numer referencyjny, z którego otrzymałeś tę informację. Twoja odpowiedź pomogła mi zrozumieć, jak to działa, dziękuję.
uczciwy zawodnik

@ uczciwy gracz Niektóre informacje znajdują się na developer.android.com i przeprowadziłem kilka testów z usługami lokalizacyjnymi w systemie Android.
sprzedawca

9
Jakie API pozwala określić dokładność do 100 metrów? Widzę kryteria ACCURACY_COARSE, ACCURACY_FINE, ACCURACY_HIGH, ACCURACY_LOW, ACCURACY_MEDIUM, ale nie 100 metrów.
Kryzys

Na czym opiera się ta odpowiedź?
AlikElzin-kilaka,

18

Dokumentacja dotycząca getAccuracy mówi, że zwraca dokładność w metrach. Domyślam się, że oznacza to, że jeśli otrzymasz zwrotną wartość 60, jesteś gdzieś w kole o promieniu 60 metrów wokół podanej pozycji.


1
jeśli patrzę na moje mapy Google i moją aktualną pozycję, masz rację ... w większości przypadków. Zdarzyło się też, że mój telefon wskazywał moją pozycję około 2 lub 3 kilometrów od mojej rzeczywistej pozycji ... Interesuje mnie też ta kwestia
poeschlorn

1
Dzięki. Zgadzam się, że wartość zwracana przez getAccuracy jest wyrażona w metrach i że musi to być promień koła (lub może kuli, gdy wysokość jest również podana w oszacowaniu lokalizacji). Ale powinno też być z tym związane prawdopodobieństwo, a to dziwne, że dokumentacja nie mówi, jakie to prawdopodobieństwo jest ani jak je uzyskuje. Widziałem jeden post w Internecie, w którym ktoś zasugerował, że może to być CEP, ale wydawało się, że to tylko domysł, więc naprawdę chciałbym znaleźć sposób, aby potwierdzić, czy to jest to, czy 95% krąg zaufania, czy coś innego.
John RB Palmer

1
Oto kilka linków, które są przydatne w zrozumieniu pytania (ale które go nie rozwiązują): users.erols.com/dlwilson/gpsacc.htm groups.google.com/group/android-developers/browse_thread/thread/ ...
John RB Palmer

12

O ile widzę po szybkim spojrzeniu na kod źródłowy Androida, zależy to od sprzętu urządzenia i wartości, które wybierze do zwrócenia.

GpsLocationProvider.javaPlik ma reportLocationmetody , która jest wywoływana przez natywnego kodu i zostanie przekazany dokładności jako wartość. W związku z tym wydaje się, że przynajmniej w ramach tych obliczeń nie dokonuje się żadnych obliczeń.

QCOM (co wierzę jest Qualcomm) GPS git repo uchwala się hor_unc_circularparametr dokładności co wydaje się sugerować, że przynajmniej, że realizacja używa CER.


4

Jeśli, jak podano w dokumentacji, jest to dokładność, to rzeczywista pozycja użytkowników znajduje się gdzieś w obrębie QUOTED_LOCATION +/- ACCURACY. Tak więc dokładność określa promień, na którym można się spodziewać użytkownika. Dokumenty nie mówią, że możesz być pewien, że użytkownik znajduje się w promieniu - standard wynosi 95%, więc myślę, że to wszystko.


1
Bardziej interesuje mnie zaufanie, jak wskazuje pytanie. To może być jeden z wielu pomiarów gpsinformation.net/main/errors.htm
Samuel

1

Rozumiem, że prosisz o jednoznaczną odpowiedź pod względem prawdopodobieństwa, ale myślę, że należy rozważyć dwie rzeczy.

Po pierwsze, dostawca decyduje, co chce umieścić w tej wartości, więc w zależności od dostawcy może to być po prostu błędne przypuszczenie.

Po drugie, warto pomyśleć o tym jako o potencjalnym problemie z zaokrąglaniem. Jeśli próbuję obliczyć Twoją lokalizację na podstawie wielu danych wejściowych, a niektóre z tych danych wejściowych są dostępne tylko dla określonej liczby cyfr znaczących, wówczas można obliczyć lokalizację tylko z określoną liczbą cyfr znaczących.

Pomyśl o tym w ten sposób - o co chodzi „o jeden plus” o „sto”. Prawdopodobnie około stu, ponieważ dokładność stu jest prawdopodobnie mniejsza niż wielkość 1. Jeśli nagle powiem, że odpowiedź wynosi około 101, to może w końcu sugerować poziom dokładności, którego tam nie było. Jeśli jednak podam dokładność, to mogę powiedzieć, że 100 plus minus 10 plus 1 plus minus 0,1 to 101 plus minus 10. Rozumiem, że ogólnie odnosi się to do poziomu ufności 95% ( błąd standardowy), ale znowu wszystko zakłada, że ​​dostawca rozumie statystyki i nie tylko zgaduje.


Dzięki - to jest bardzo pomocne. Jeśli chodzi o pierwszą kwestię, moje podejście do śledzenia lokalizacji polegało na zbieraniu szacunków dokładności, ale także przeprowadzaniu „weryfikacji rzeczywistości” poprzez obliczanie odległości i czasów między kolejnymi punktami, a następnie odrzucanie tych, które wymagałyby nierealistycznych prędkości (nawet jeśli, jak to jest czasami przypadku, są zgłaszane jako mające precyzyjną dokładność). Jeśli masz inne sugestie, z przyjemnością je wysłucham.
John RB Palmer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.