czwartek, września 02, 2010

Android, lokalizacja i koszty

Z zebranych w "eksperymencie" danych wynika, że lokalizowanie na podstawie sieci komórkowej/WiFi może być płatne.

Na 6 testów, w 5 zwrócona została wartość "true" z funkcji hasMonetaryCost() dla dostawcy "network", czyli właśnie dla ustalania pozycji na podstawie sieci komórkowej/WiFi.

Testy przeprowadziło kilka osób, którym dziękuję :-) na G1, Nexus One, HTC Desire, Motoroli Droid, HTC Legend, Samsungu Galaxy S (akurat tutaj wynik dla network był "false").

Na podstawi tych wyników zaryzykuje wniosek, że twierdzenie iż ustalanie pozycji na podstawie sieci może kosztować znajduje uzasadnienie w danych pomiarowych ;-)

A teraz krótko wyjaśnienie czemu to ustalanie pozycji może kosztować.

Telefon gdy ustala pozycję przy pomocy GPS bazuje na danych od satelitów GPSa, dokładniej na czasie od każdego z satelitów, oraz na tym który to satelita. Znając te dane z kilku satelitów GPS jest w stanie wyliczyć pozycję na powierzchni kuli ziemskiej.
Gdy GPS nie jest w stanie "zobaczyć" satelitów to zaczynają się problemy.
Wtedy wykorzystywany jest trick polegający na tym, że elementy infrastruktury sieciowej takie jak BTSy czy HotSpoty nie należą do najbardziej ruchliwych elementów świata. Zwykle pozostają w spoczynku. Dlatego jeżeli ktoś ma bazę danych z wszelkimi dostępnymi danymi dotyczącymi tych elementów infrastruktury to może pokusić się o wyznaczanie pozycji terminala, który prześle do serwerów z tymi danymi informacje o BTSach i/lub sieciach WiFi, które "słyszy".
Ale tutaj jest konieczne przesłanie danych o tym co telefon "słyszy" do serwerów które mają dane pozwalające na wyznaczenie lokalizacji, i właśnie ten transfer danych może kosztować.

Ale developer nie powinien się załamywać :-) Android daje możliwość określenia kryteriów providera, który dostarczy lokalizację, i w tych kryteriach jedną ze zmiennych jest to czy zgadzamy się na koszty, czy nie.


Podobne postybeta
Czy ustalanie pozycji w Androidzie może kosztować?
Zmarł Arthur C. Clarke :-(
Android i lokalizacja. Czego używać zagranicą?
ISS
Zadanie - czyżbym znalazł rozwiązanie po 10 latach od momentu gdy je zobaczyłem? ;-)