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

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

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

  • Promień 95% kręgu zaufania?

  • Coś jeszcze?

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

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

Author: John R.B. Palmer, 2010-06-16

6 answers

Aby odpowiedzieć na jedną część pytania, Liczba the radius of 68% confidence, oznacza, że istnieje 68% szansy, że prawdziwa lokalizacja znajduje się w promieniu mierzonego punktu w metrach. Zakładając, że błędy są rozkładane normalnie (co, jak mówią dokumenty, niekoniecznie jest prawdą), oznacza to, że jest to jedno odchylenie standardowe. Na przykład, jeśli Location.getAccuracy zwróci 10, to istnieje 68% szansa, że prawdziwa lokalizacja urządzenia znajduje się w odległości 10 metrów od zgłaszanego współrzędne.

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

 59
Author: karl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-17 20:55:31

[2]}lokalizacja jest trudnym zadaniem, gdy masz ograniczoną żywotność baterii i gdy nie ma sygnału GPS w budynkach i w obszarach z wieloma dużymi budynkami itp. Ale Android sprawia, że o wiele łatwiejsze. Kiedy żądasz lokalizacji, musisz tylko określić, jakiej dokładności potrzebujesz.

Jeśli określisz, że chcesz accuracy dla przykładu *100 meters*, Android spróbuje uzyskać lokalizację i jeśli może uzyskać lokalizację z dokładnością do 70 metrów, zwróci ją do ciebie, ale jeśli Android może uzyskać Lokalizacja z dokładnością większą niż 100 metrów, Twoja aplikacja będzie czekać i nie otrzyma nic, dopóki nie będzie lokalizacji z taką dokładnością.

Zazwyczaj Android najpierw otrzyma identyfikator komórki, a następnie wyśle go do serwera Google, który mapuje takie identyfikatory komórek, a serwer zwróci szerokość i długość geograficzną z dokładnością, która jest niska dla przykładu 1000 metrów. W tym czasie Android spróbuje również zobaczyć wszystkie sieci WiFi w okolicy i wyśle informacje o nich zbyt do serwer Google i, jeśli to możliwe, serwer Google zwróci nową lokalizację z większą dokładnością dla przykładu mierników 800.

Do tego czasu GPS będzie włączony. Urządzenie GPS potrzebuje co najmniej 30 sekund od zimnego startu, aby uzyskać poprawkę, więc jeśli można uzyskać poprawkę, zwróci szerokość i długość geograficzną, ale ponownie z dokładnością, która będzie najwyższa z możliwych dla przykładu 100 metrów. Im dłużej GPS działa, tym lepszą dokładność otrzymasz.

Ważna informacja: pierwsza dwie metody wymagają połączenia z Internetem. Jeśli nie ma połączenia z danymi, będziesz musiał poczekać na GPS, ale jeśli urządzenie znajduje się w budynku, prawdopodobnie nie otrzymasz lokalizacji.

 39
Author: vendor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-27 08:49:42

Dokumentacja na getAccuracy mówi, że zwraca dokładność w metrach. Domyślam się, że oznacza to, że jeśli otrzymasz wartość zwrotu 60, jesteś gdzieś w okręgu o promieniu 60 metrów wokół dostarczonej pozycji.

 15
Author: Janusz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-16 12:33:12

Z tego, co widzę z szybkiego spojrzenia na kod źródłowy Androida, jest to zależne od sprzętu urządzenia i jaką wartość wybiera do powrotu.

Plik GpsLocationProvider.java mA reportLocation Metoda , która jest wywoływana przez natywny kod i przekazywana jako wartość dokładności. Wydaje się więc, że przynajmniej żadne obliczenia nie mają miejsca w ramach.

Qcom (który moim zdaniem jest Qualcomm) GPS Git repo przekazuje parametr hor_unc_circular dla dokładności, który wydaje się sugerować, że przynajmniej ta implementacja korzysta z CER.

 10
Author: paracycle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-30 12:46:05

Jeśli, jak zacytowano to w dokumentach, jest to dokładność, to rzeczywista pozycja użytkownika znajduje się gdzieś w obrębie QUOTED_LOCATION + / - ACCURACY. Tak więc dokładność określa Promień, w którym można oczekiwać, że użytkownik będzie. To, czego nie piszą dokumenty, to pewność, że użytkownik jest w promieniu-standard wynosi 95%, więc chyba to wszystko.

 4
Author: Joseph Earl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-23 14:01:11

Rozumiem, że prosisz o konkretną odpowiedź pod względem prawdopodobieństwa, ale myślę, że są dwie rzeczy do rozważenia. Po pierwsze, to dostawca decyduje, co chce umieścić w tej wartości, więc w zależności od dostawcy, może to być po prostu złe przypuszczenie. Po drugie, może pomóc myśleć o tym jako potencjalnym problemie zaokrąglania. Jeśli próbuję obliczyć Twoją lokalizację na podstawie liczby wejść, a niektóre z tych wejść są dostępne tylko dla określonej liczby znaczących cyfr, wtedy możliwe jest tylko obliczenie lokalizacji z określoną liczbą cyfr znaczących. Pomyśl o tym w ten sposób -- co to jest "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ź jest około 101, to może oznaczać poziom dokładności, którego nie było. Jednak, jeśli rzeczywiście określić dokładność, to mogę powiedzieć, że to 100 plus minus 10 plus 1 plus minus .1 101 plus minus 10. Rozumiem, że ogólnie odnosi się to do czegoś w rodzaju poziomu ufności 95% (błąd standardowy), ale znowu, że wszystko zakłada, że dostawca rozumie statystyki i nie tylko zgaduje.

 1
Author: dscheffy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-13 00:10:26