W jaki sposób system Android uzyskuje zgrubną lokalizację?

15

Czytałem, że Android (i podobne systemy operacyjne, np. IOS) uzyskują bieżącą zgrubną lokalizację za pomocą triangulacji wieży WiFi lub GSM. Mam podstawowy pomysł, ale mam pytania dotyczące szczegółów.

  1. Czy Android zwykle używa obu metod, czy też preferuje jedną i wraca do drugiej?
  2. Czy komunikuje się z serwerem, aby uzyskać pozycję przez Wi-Fi? (np. wysyłanie identyfikatorów SID WiFis do serwisu internetowego)
  3. Czy komunikuje się z Przewoźnikiem, aby uzyskać pozycję za pośrednictwem wież GSM, czy też odbywa się to na urządzeniu?
Tim Büthe
źródło

Odpowiedzi:

8

To naprawdę zależy od dewelopera, jak wdrożyć usługę lokalizacji. Pełny opis jest dostępny tutaj:

http://developer.android.com/guide/topics/location/obtaining-user-location.html

Wykres około 1/3 w dół strony jest dość przydatny, aby zobaczyć, co może zrobić typowa aplikacja, ale znowu, to całkowicie zależy od twórcy aplikacji. Rodzaje usług lokalizacyjnych to:

  • Poprawka w pamięci podręcznej
  • Identyfikator komórki
  • WiFi
  • GPS
  • Mock Location

Jeśli aplikacja poprosi o pozwolenie tylko na zgrubną lokalizację, nie użyje GPS do ustalenia lokalizacji.

Aby odpowiedzieć na pytania ...

  1. To zależy od indywidualnego twórcy aplikacji, ale w większości przypadków sekwencją będzie poprawka buforowana, identyfikator komórki, Wi-Fi, GPS, w tej kolejności.
  2. Tak, po uzyskaniu identyfikatorów wieży lub identyfikatorów SSID sygnałów WiFi dane te są przesyłane do Google w celu ustalenia przybliżonej lokalizacji.
  3. Nie, Google zrobił tutaj coś naprawdę sprytnego. Google ma własną bazę danych o lokalizacjach wieży komórkowej i nie wymaga interakcji z przewoźnikiem w celu ustalenia lokalizacji wieży.

Ten artykuł zawiera niektóre szczegóły http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/

Krótka wersja polega na tym, że podczas korzystania z aplikacji takiej jak Mapy Google, aplikacja wyśle ​​bieżące informacje o identyfikatorze komórki z powrotem wraz z bieżącą poprawką GPS. W ten sposób Google uzyskuje bardzo dobre próbkowanie mocy sygnału w różnych lokalizacjach i jest w stanie zbudować bardzo bogatą bazę danych.

JadeMason
źródło
Bardzo podoba mi się twoja odpowiedź, ale nie jestem pewien, czy masz rację w części „całkowicie zależy od programisty”. O ile mogę stwierdzić, deweloper może zdecydować o uzyskaniu grzywny lub zgrubnej lokalizacji. Innymi słowy, może on użyć LocationManager.NETWORK_PROVIDER i / lub LocationManager.GPS_PROVIDER, aby uzyskać lokalizację. Myślę, że nie może zdecydować, a nawet zobaczyć, czy używane jest Wi-Fi lub GSM, prawda?
Tim Büthe,
W najczęstszym przypadku deweloper nie będzie dbał o to, czy dane pochodzą z Wi-Fi lub identyfikatora komórki, ale programista może wprowadzić ograniczenia, aby zezwolić aplikacji na działanie tylko wtedy, gdy WiFi jest wyłączone lub GPRS / GSM jest wyłączone. Wziąłem twoje pytanie na myśli: „Czy istnieje standardowa sekwencja, którą przestrzegają wszystkie aplikacje”, a odpowiedź brzmi „nie”. Jednak ze szczególnym uwzględnieniem różnicy między Wi-Fi a Cell-ID twórca aplikacji ma ograniczone możliwości konkretnego żądania jednego rodzaju usługi lokalizacyjnej.
JadeMason
1
Czy znasz sposób na przesłanie lokalizacji hotspotów Wi-Fi do ich bazy danych, aby uzyskać lepsze triangulacje w mojej okolicy / pomieszczeniu? Otworzyłem wątek dla tego mojego questione: android.stackexchange.com/questions/4715/…
Özgür
3

Wiele z tego jest specyficznych dla przewoźników i nie jestem deweloperem, ale oto, co mogę połączyć z interwebami i szkoleniami, które odbyłem w elektronicznym dochodzeniu w sprawie przestępstwa:

  1. Tak, ale zależy to od konkretnych priorytetów LBS aplikacji, które są ustalane przez programistę i mogą być oparte na aktualnej dokładności kursu, poziomach mocy, predefiniowanych priorytetach ...
  2. Tak. Przewoźnicy mają zastrzeżone bazy danych lokalizacji stacji bazowej Wi-Fi.
  3. Nie mogę rozmawiać konkretnie z Androidem, ale ogólnie będzie to typ operatora i sieci (CDMA lub GSM). Telefony są zdolne do obu, ale przynajmniej kilka lat temu wykonali tę pracę na telefonie z powodu ograniczeń przepustowości związanych z robieniem tego ota.
Matt
źródło
0

Twój telefon wie, jakie są najbliższe wieże. Istnieje baza danych dostawców dla każdego kraju, który identyfikator wieży znajduje się na mapie. Ta baza danych może być na tyle mała, że ​​może zostać wstępnie zainstalowana przez dostawcę lub dostarczona bezprzewodowo. Jak telefon z Androidem otrzymuje te dane, nie wiem.

Barfieldmv
źródło
-1

Mam nieco inne odpowiedzi na # 3: urządzenie może być użyte, jeśli chcesz użyć triangulacji, ale musisz użyć nośnika, jeśli chcesz dopasować identyfikator komórki i lokalizację wieży gsm (lub cdma).

Obrabować
źródło
ale czy jest to opcja, którą może określić twórca aplikacji, a nawet użytkownik końcowy, czy też jest to coś, co określa przewoźnik?
Matt
Jest to obowiązkowe, jeśli chcesz użyć tego sposobu do lokalizacji urządzenia. Zastosowanie triangulacji lub innej metody pozwala ustalić, gdzie jesteś, w porównaniu z pozycją anteny. Ale jeśli nie znasz długości / długości anteny, nie będziesz w stanie ustalić swojej pozycji na mapie. W domu jestem czysty :)
Rob
@Rob Ale nie potrzebujesz przewoźnika, aby znaleźć lokalizację wieży. Każda wieża nadaje unikalny identyfikator, każdy może niezależnie ją podnieść i zmapować, bez interakcji operatora. Google robi to od dłuższego czasu w przypadku wież komórkowych i punktów dostępu WiFi. Samochód Google Streetview zbiera informacje podczas podróży, a użytkownicy Map Google na różnych platformach wysyłają również anonimowe dane pasujące do poprawek GPS z identyfikatorami anteny i Wi-Fi oraz siłą. Jest to podobne do sposobu, w jaki Google zbiera wiele danych o ruchu w miastach, agreguje prędkość i pozycje od wielu użytkowników Map.
GAThrawn
Jesteś pewny ? Wygląda zaskakująco. Na przykład w Niemczech (i innych krajach w Europie) Google został pozwany za zbieranie informacji o Wi-Fi, więc wygląda na to, że nie korzystał z tego zasobu. W przypadku bazy danych GSM, jeśli Google jest właścicielem, powinna być dostępna i nigdy o niej nie słyszałem.
Rob
1
@Rob googlemobile.blogspot.com/2008/06/… „Telefon zna identyfikator używanej obecnie wieży komórkowej. Jeśli telefon ma GPS, aplikacja Mapy w telefonie wysyła współrzędne GPS wraz z identyfikatorem komórki do serwer lokalizacji Google ”. nie mogę teraz znaleźć linku, ale jakiś czas temu ogłosili, że aplikacja Blackberry Google Maps odsyła w pobliżu SSID Wi-Fi i siłę z tego samego powodu. Nie jest to to samo, co „błąd” programistyczny w oprogramowaniu Streetview, którego są pozwani o przechwycenie większej ilości danych WiFi niż to miało być.
GAThrawn