środa, marca 17, 2010

Geolokalizacja c.d. :-)

Jak już pisałem wcześniej gdy mamy włączone WiFi Google potrafi zwykle określić naszą pozycję z dość dużą dokładnością.
W pracy zrobiłem kilka eksperymentów i tam pozycja nie pływała, ale w miejscu spania pływa i to mocno, co widać na poniższym rysunku :-)



To by sugerowało, że jeżeli brane są pod uwagę tylko SSIDy/MACi to w mojej okolicy jest co najmniej 8 [a nawet więcej bo chyba 2 punkty mi się nie wrzuciły na ten rysunek] HotSpotów zarejestrowanych w bazach z których korzysta Google.
Bardziej prawdopodobne wydaje mi się więc to, że Google ma dane co najmniej 2 sieci WiFi które są w mojej okolicy w KRK i bierze pod uwagę moc sygnałów w trakcie wyznaczania pozycji.
Z ciekawych rzeczy, przed każdym ustaleniem pozycji Google Maps otwierają tunel HTTPS do Google, którego niestety nie udało mi się podsłuchać :-( Fiddler2 nie pokazuje tego co idzie w tym tunelu [co by sugerowało, że to nie HTTP, a coś innego, choć trudno wymyślić co...], a WhireShark nie chce działać na moim Windows 7, a przynajmniej nie potrafi podsłuchać połączenia sieciowego związanego z moim Blueconnectem. Można się domyślać, że w tym tunelu "lecą" dane do zapytania :-) Hmmm.. może uda mi się do podsłuchu wykorzystać netbooka? ;-)

[Najlepsze, że wystarczyłoby sprawdzić w dokumentacji do Firefoksa, tudzież w jego kodzie co on wysyła do Google w momencie ustalania pozycji i wszystko by było wiadomo :-)]

[Update: zajrzałem do kodu Firefoksa, z którego dotarłem do kodu Google Gears i wychodzi na to, że miałem rację :-) kod odpowiedzialny za zabawy z geolokalizowanie przy pomocy WiFi pobiera SSID, MACa i RSSI sygnału, teraz pozostaje mi tylko dotarcie do miejsca gdzie te dane są używane i sprawdzenie czy wszystkie te dane trafiają do Google, czy może tylko SSIDy i MACi, a moc sygnału jest wykorzystywana do obliczeń "na miejscu" czy też w ogóle jest ignorowana]

Podobne postybeta
Śledzimy geolokalizację ;-)
Dalsze śledzenie geolokalizacji Google'a :-)
Syncrhonizacja przez osoby.... komputery trzecie ;-)
A może niepotrzebnie aż tyle śpimy?
Android i lokalizacja. Czego używać zagranicą?

5 komentarzy:

  1. Hmmm, nie mam pewności, ale wydaje mi się że kiedyś na stronach Google Gears widziałem pełny opis protokołu użytego do komunikacji. Przeglądałeś ich dokumentację?

    ps.
    ... a u mnie przeglądarka wskazuje że jestem na środku Ronda w Katowicach – chyba nie zawsze to działa jak powinno.

    OdpowiedzUsuń
  2. @Red - a masz włączone WiFi? :-)
    Dzięki za sugestię, nie wpadłem jakoś żeby przeglądać dokumentację, choć to chyba powinien być pierwszy punkt zaczepienia ;-)

    OdpowiedzUsuń
  3. Mam włączone, ale nie widzę różnicy, dla tego wcześniej nie zwróciłem uwagi na ten mechanizm.

    Szybkie wyszukiwanie w Googlach potwierdza że masz rację, mechanizm potrafi być niesamowicie precyzyjny. Nie jest przypadkiem tak że przynajmniej niektóre acccess pointy znają i podają informację o swoim położeniu?

    OdpowiedzUsuń
  4. Z tego co widzę w dokumentacji do Gearsów to są tam niestety tylko informacje jak używać Geolocation API [możliwe jednak, że źle szukam :-)]
    W KRK jestem lokalizowany całkiem znośnie, np. używając tego http://www.przemelek.pl/file/geolocation2.html dostaję dość bliską rzeczywistej lokalizację.
    Z tego co wiem to HotSpoty nie wysyłają informacji o swojej lokalizacji.

    OdpowiedzUsuń
  5. Mogę sobie próbować :) Geolokacja w oparciu o WiFi na Fiefox pod systemem Linux nie działa.
    W przypadku Chrome, odpowiedni kod pojawił się dopiero 6 dni temu. Łatki zostały zatwierdzone dopiero wczoraj, tak więc na dziś pozostaje tylko sciąganie z SVN…

    Rzeczywiście, nie ma informacji jak dokładnie ten mechanizm działa. Wygląda na to że Google faktycznie posiadają bazę wszystkich AP, jeśli weźmiesz ze sobą swój router to w ten sposób sfałszujesz wyniki.

    OdpowiedzUsuń