Dlaczego Android ma takie problemy z zapamiętywaniem ostatniej znanej lokalizacji?

12

Nigdy nie byłem w stanie dowiedzieć się, w jaki sposób Android pamięta swoją ostatnią znaną lokalizację. Jeśli wydaje się pamiętać lokalizację sprzed kilku godzin, ale nie kilka sekund temu. Myślę, że najlepiej jest podać przykład tego, co mam na myśli.

Byłem ostatnio w Bay Area. Korzystałem z map Google na moim Androidzie i zdarzyło mi się być w pobliżu Google Campus w Mountain View. Korzystałem z map z włączoną funkcją GPS i po pewnym czasie dostałem odpowiednią blokadę GPS, którą nawigowałem po okolicy.

Kiedy później wróciłem do San Francisco, używałem go do poruszania się po mieście. Za każdym razem, gdy włączam mapy, ponownie umieszczam swoją lokalizację w widoku górskim. Około 10 sekund później po otrzymaniu blokady GPS uzyskałem swoją prawdziwą lokalizację. Jeśli kilka sekund później wyłączyłem i ponownie włączyłem telefon, to samo się stało - wydaje mi się, że jestem gdzieś kilka godzin wcześniej, a następnie zaczynam od mojej rzeczywistej lokalizacji. Dzieje się tak przez cały czas - pamiętając, gdzie byłem kilka godzin temu, a nie kilka chwil temu. Kiedyś przebywałem w okolicy przez pewien czas, teraz staje się nową „ostatnią znaną lokalizacją”.

Dlaczego po otrzymaniu dokładnej blokady GPS system Android nie rejestruje tego jako „ostatniej znanej lokalizacji” zamiast wcześniejszej?

Tim
źródło

Odpowiedzi:

3

Nie jest to pełna odpowiedź, ale niektóre podstawowe informacje:

  • Twoje urządzenie może mieć więcej niż 1 dostawcę lokalizacji, np. Jednego opartego na GPS i jednego opartego na wieżach telefonów komórkowych, które może zobaczyć.
  • Android nie ma ostatniej znanej pozycji. Każdy dostawca lokalizacji ma swoją ostatnią znaną pozycję.
  • Lokalizacja ma dodatkowe pomiary, takie jak dokładność, kiedy została zarejestrowana, co zostało zarejestrowane (np. Czy ma składową wysokości itp.)

Zależy to więc od tego, z którego dostawcy lokalizacji korzysta aplikacja, i które może zależeć, a nawet zmieniać na podstawie parametrów dynamicznych. Na przykład podczas uruchamiania może poprosić Androida o najszybszego dostawcę lokalizacji, a następnie przełączyć się na ten najdokładniejszy, aby stopniowo uzyskać lepszą naprawę.

użytkownik4188
źródło
To jest naprawdę dobre, zwięzłe wyjaśnienie. Dziękuję Ci.
Nick Dixon
Ma to również sens, ponieważ kiedy wróciłem do miasta, nie miałem Wi-Fi / danych mobilnych. W kampusie Google było wifi. Tak więc mapy musiały początkowo używać „grubej” (tj. Wi-Fi) ostatniej znanej lokalizacji (która była w Google), a następnie, gdy GPS uruchomił się kilka sekund później, aktualizuje się. Nadal myślałem, że lokalna identyfikacja GPS byłaby bardziej świeża / lepsza.
Tim
ta odpowiedź jest bardziej jak komentarz. a jeśli z grubsza lokalizacja ma mniejszy priorytet, wyjaśniłoby to jeszcze mniej, dlaczego telefon wrócił później do widoku mnt.
gcb
2

Rozumiem, że Android używa gruboziarnistych i drobnoziarnistych aktualizacji lokalizacji i te aktualizacje mogą mieć również inne wskaźniki jakości. Możliwe, że aplikacja Mapy Google nie miała wystarczająco długiego sygnału GPS i Wi-Fi w nowej lokalizacji, aby była wystarczająco wysoka, aby być ostatnią znaną lokalizacją.

Dokumentacja dla programistów pod adresem http://developer.android.com/guide/topics/location/obtaining-user-location.html podaje przykłady modeli uzyskiwania lokalizacji użytkowników, które mogą dać wgląd w sposób, w jaki to działa. Ale zgaduję, że Google Maps i prawdopodobnie inne mapy robią swoje.

Andy Shinn
źródło