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?
źródło
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.
źródło