Na czas publikacji BeaconDB może pochwalić się danymi o prawie 32.000.000 hotspotach WiFi, 1.000.000 beaconów Bluetootha, oraz 1.600.000 stacji bazowych. Jak na projekt niekomercyjny prowadzony tylko przez jedną osobę — liczba ta jest imponująca, tym bardziej że znaczna część kontrybucji pochodzi od osób chodzących po swoich miastach i wsiach, ulepszając pokrycie w swojej okolicy. Ten poradnik sprawi, że — mam nadzieję — staniesz się jedną z nich.
Drobna uwaga dla posiadaczy „jabłkofonów”: mimo tego, że chciałbym Was też zachęcić do akcji polepszania jakości danych w BeaconDB, to dla Was nie mam dobrych wieści, bo aplikacji takich jak NeoStumbler czy Tower Collector nie ujrzycie w Apple App Store. Ale kto wie, może Wasi znajomi są Androidziarzami i byliby chętni Wam pomóc?
Nie mam sygnału GPS, więc jak niby mój telefon uprawdopodabnia moją lokalizację?
Dzieje się tak za sprawą systemu AGPS – którego skrótowiec oznacza „Assisted GPS”. W przeciwieństwie do satelit wiszących kilkaset kilometrów nad naszymi głowami, nasz telefon korzysta z informacji o najbliższych stacjach bazowych, hotspotach WiFi czy beaconach Bluetootha, których położenie jest już znane i na ich podstawie dokonuje triangulacji. Od każdego znanego punktu mierzona jest odległość, co pozwala ustalić przybliżoną lokalizację, w której się znajdujemy.
Problem jednak polega na tym, że w bazie danych usługi, z której nasz telefon korzysta, nie ma informacji o absolutnie wszystkich tego typu punktach. Żeby AGPS mógł poprawnie funkcjonować, ktoś wcześniej musiał wskazać pozycję stacji bazowych, hotspotów WiFi czy beaconów Bluetootha.
Jako iż telefony z Androidem (te z usługami Google’a) czy iPhone’y stanowią de facto duopol na rynku smartfonów, to domyślnie funkcjonuje w nich także program o nazwie „stumbler”. Jest to program zbierający informacje o wyżej wspomnianych punktach, w których się znajdują stacje bazowe, hotspoty czy beacony. Możemy być nawet ich działania zupełnie nieświadomi. Mało tego, bazy danych, które są tworzone na podstawie zbieranych informacji, są zamknięte na cztery spusty.
Przez lata istniała usługa alternatywna do Google/Apple Location Services, i była nią uruchomiona w 2013 roku Mozilla Location Services. Została jednak ona zamknięta w 2024 roku.
Ponieważ dane zbierane przez stumblery szybko tracą swoją świeżość, to te muszą być aktualizowane w zasadzie na bieżąco. Codziennie pojawiają się lub znikają stacje bazowe, hotspoty czy beacony. Jeżeli działalibyśmy mimo tych zmian na starych danych, to dokładność ustalonej lokalizacji będzie wraz z czasem malała.
Jak kontrybuować do BeaconDB?
W przeciwieństwie do Google/Apple Location Services model zbierania danych opiera się na modelu dobrowolności. Pozwala to na zdecydowanie przez użytkownika, kiedy rzeczywiście chce kontrybuować do BeaconDB. I choć dokładność danych będzie mniejsza przynajmniej na początku, to najważniejszym jest fakt, że mimo wszystko zebrane informacje pochodzą od faktycznie zainteresowanych projektem osób.
Kontrybuowanie do BeaconDB nie jest skomplikowane – wystarczy Twój smartfon, zainstalowany NeoStumbler czy Tower Collector, chodzenie po Twojej okolicy i oczywiście dobre chęci. Ja korzystam z tego pierwszego i swój poradnik oprę o właśnie tę aplikację. Całość ogranicza się tylko do poniższego:
- Krok zerowy, zainstaluj aplikację z F-Droida lub Accrescent (w Google Play Store tej aplikacji nie ma).
- Krok pierwszy, uruchom NeoStumblera i przejdź do ustawień. W sekcji Endpoint kliknij Sugerowane serwisy i wybierz stąd BeaconDB. Potem ustaw:
- Usuwaj wysłane raporty na Nigdy, żeby była możliwość ponownego ich przesłania do alternatywnej usługi nawet dla BeaconDB, lub gdyby były problemy z dostępnością do BeaconDB;
- Częstotliwość skanowania Wi-Fi na 30-40 metrów oraz Częstotliwość skanowania wież komórkowych na 60-80 metrów – domyślnie te wartości są większe, ale co za tym idzie, dokładność zbieranych przez NeoStumblera danych będzie też mniejsza. Nie należy też przesadzać w drugą stronę, bo potem będziemy często przesyłać zduplikowane dane do BeaconDB. 30-40 metrów dla hotspotów Wi-Fi oraz 60-80 metrów dla stacji bazowych wydaje się być w miarę optymalną wartością;
- oraz Wykrywanie ruchu na Na podstawie lokalizacji. Opcja Czujnik ruchu w moim przypadku była na tyle restrykcyjna, że skanowanie przestawało działać nawet gdy się poruszałem.
- Krok drugi, przejdź do zakładki raportów i uruchom skanowanie. Wyjdź na miasto i przejdź się po okolicy — zauważysz, że Twój telefon zacznie wykrywać potencjalnie nowe dla BeaconDB hotspoty i stacje bazowe.
- Krok trzeci, gdy już skończysz — wyłącz skanowanie i kliknij na Wyślij raporty (możesz też klikać ten przycisk w trakcie skanowania, żeby stopniowo przesyłać informacje). To tyle, BeaconDB już wie o zebranych przez Ciebie danych.
Dlaczego powinienem/powinnam się przyłączyć do kontrybuowania do BeaconDB?
Jak Kamila Drzewiecka (znana także pod pseudonimem MarkAssPandi) mówiła w swoim wykładzie na 19. Sesji Linuksowej, czasami niektóre rzeczy nam nie wystarczają i dla takich rzeczy warto tworzyć alternatywne usługi.
Oraz, tak jak wspomniałem, w przeciwieństwie do Google/Apple Location Services „szczycącymi” się swoją hermetycznością, BeaconDB jest projektem otwartoźródłowym. I najważniejsze — nie zrażajmy się tym, że BeaconDB jeszcze nie wie niczego o naszej okolicy, bo można to zmienić prostym sposobem. Każda usługa internetowa kiedyś miała swój początek.
Ale największą satysfakcję — przynajmniej mi — daje fakt, że przyczyniam się do budowania alternatywnej usługi AGPS, która w przyszłości mogłaby stanowić za użyteczną alternatywę dla Google/Apple Location Services.
Źródła
Zdjęcie tytułowe pochodzi ze strony beacondb.net i przedstawia ono pokrycie BeaconDB na mapie Europy. Dane przedstawionej mapy pochodzą z OpenStreetMap.