Wiecie jak wielu użytkowników urządzeń mobilnych korzysta z Androida? Zapewne pomyślicie: dużo, albo bardzo dużo. W 2019 roku 73,3% wszystkich działających na świecie urządzeń mobilnych posiadało system Android. A w Polsce? Ilu z Waszych znajomych korzysta z czegoś innego niż Android na urządzeniach mobilnych? Statystyki mówią, że w 2019 roku tylko 4,34% używało iOSa od Apple, 0,61% Windowsa, a 0,05% systemu Nokii. Aż 94,76% z nas użytkowało Androida. Ja też. Innymi słowy mają go prawie wszyscy. A ilu z nas potrafi podłączyć swojego smartfona do precyzyjnego odbiornika GPS? Jeżeli jeszcze nie wiesz jak to zrobić, powinieneś poznać sekretną funkcję pozorowania lokalizacji.

 

Powyższe statystyki możesz sprawdzić w serwisie gs.statcounter.com. Przyznam się, że myślałem, że będzie więcej użytkowników iOSa w Polsce. 😉 Jak widać Android dominuje praktycznie niepodzielnie. Jest to też ważny powód do tego, aby poznać jego funkcje przydatne do zastosowań terenowych, czyli bazujące na lokalizacji urządzenia w przestrzeni.

 

Jak działa Lokalizacja

Lokalizacja jest jedną z kluczowych funkcji w systemie, co być może już nam spowszedniało. W rzeczywistości między innymi ta funkcja decyduje o tym, że nasze smartfony są faktycznie smart. Funkcja korzysta ze specjalnych bibliotek programistycznych zawartych w systemie Android, stworzonych w języku programowania Kotlin (bazującym na Javie, o której mogliście słyszeć). Co ciekawe, zainteresowani tym tematem mogą za darmo pobrać program Android Studio i napisać w nim własną, prostą aplikację na smartfona wykorzystującą funkcję Lokalizacja, korzystając choćby z tego poradnika. To, czego bez zaawansowanej wiedzy nie zrobimy, to zagłębienie się w meandry programistycznego kodu i spróbowanie np. zdefiniowania odczytów z chipu GNSS zainstalowanego w naszym urządzeniu, czy podłączenie dostępu do danych korekcyjnych. Ale to robią już dla nas autorzy oprogramowania, z którego korzystamy w terenie.

 

Ryc. 1 – Włączona funkcja Lokalizacja (GPS) w smartfonie

 

Balonik, pinezka i kropka

W aplikacjach terenowych wykorzystanie funkcji Lokalizacja najczęściej sprowadza się do najzwyklejszego w świecie czytania tego, co jest wynikiem jej działania. Wynikiem tym w Androidzie są gotowe współrzędne, które nasz program wyświetla w okienku mapy posiadającej konkretny układ współrzędnych. W przypadku Map Google będzie to WGS84 i współrzędne geograficzne w postaci stopni dziesiętnych (dla Krakowa szerokość 50.000000 i długość 20.000000), a w bardziej zaawansowanych aplikacjach zobaczymy współrzędne przeliczone do układów prostokątnych płaskich. W Polsce będą to najczęściej PL-1992 oraz PL-2000. Miejsce, gdzie aplikacja przypina nasz tytułowy balonik, pinezkę czy kropkę na mapie jest zawsze to samo, ale jak widać może być różnie opisane.

 

Balonik lata gdzie chce

Problem pojawia się wtedy, gdy odczyty naszego urządzenia są niestabilne, a dokładność poniżej oczekiwań. W praktyce wygląda to tak, że my stoimy po jednej stronie ulicy pod ścianą budynku, a w programie na mapie widać jakby było to po drugiej stronie tej samej ulicy, lub gdzieś na dachu budynku, przy którym stoimy. Należy w tym momencie uświadomić sobie, że aplikacja cały czas działa tak samo i robi to dobrze, ale dane, które otrzymuje do wyświetlenia, są znacząco gorszej jakości. Wobec tego lądujemy po drugiej stronie ulicy lub obok skrzypka na dachu.

W sytuacji, gdy nasza firma kupiła np. tablety dla pracowników terenowych, szybkie i nowoczesne, ten problem może być dla nas dosyć uciążliwy. Pomimo superszybkiego procesora i mnóstwa pamięci RAM to jednak nie te komponenty wpływają na dokładność naszych współrzędnych, a o nie właśnie nam chodzi. Jest jednak na to lekarstwo.

 

Magia kina!

Słyszeliście kiedyś o trybie deweloperskim w Androidzie? To sekretne miejsce, w którym twórcy systemu Android ukryli te jego funkcje, do których zwykli użytkownicy nie powinni mieć dostępu. Dlaczego? Bo nie będą wiedzieli jak ich użyć, albo używając ich zaburzą pracę systemu, albo po prostu coś zepsują. Czy powinniśmy się więc bać ingerencji w te ustawienia? Nie! Po prostu musimy to robić świadomie i wiedzieć w co klikamy.

Tryb deweloperski pozwala nam bowiem na zmianę źródła współrzędnych w systemie operacyjnym. Innymi słowy: pomimo tego, że mamy smartfona z wbudowanym chipem GNSS, możemy w systemie ustawić, aby nasze współrzędne pochodziły z innego urządzenia – np. z zewnętrznego odbiornika precyzyjnego. Wtedy nasz balonik nagle zarzuci kotwicę i już nie będzie mu tak łatwo się z niej zerwać.

 

Jak to zrobić? Bezpieczna konfiguracja krok po kroku

1. Po pierwsze na nic nie przyda Ci się poniższa instrukcja, jeżeli nie będziesz miał sprzętu do podłączenia. Potrzebujesz odbiornika zewnętrznego SP85 lub SP60 marki SPECTRA, dzięki którym uzyskasz dokładne odczyty współrzędnych w terenie. Jeżeli nie masz tych odbiorników napisz do nas w celu darmowego użyczenia sprzętu na testy lub wypożyczenia na kilka dni do wykonania projektu.

 

2. Potrzebujesz aplikacji, która zapewni łączność z odbiornikiem zewnętrznym. Do tego celu pobierz SPace ze sklepu Google Play. Aplikacja jest darmowa i bezpieczna. Podczas instalacji zezwól na dostęp do potrzebnych zasobów.

 

3. Po instalacji program SPace poprosi o przypisanie do niego funkcji pozorowania lokalizacji i najprawdopodobniej przeniesie Cię od razu do ustawień deweloperskich. Proponuję jednak teraz zamknąć SPace-a i dotrzeć tam samodzielnie – patrz punkt następny.

 

4. Musisz wiedzieć jak dostać się do trybu deweloperskiego. W zależności od wersji Androida droga ta nieznacznie się różni. Najlepiej wpisać w wyszukiwarkę model swojego smartfona z dopiskiem tryb deweloperski albo developer mode. Dla porządku pokazujemy, jak zrobić to na popularnym tablecie Samsung Tab Active2 z Androidem 9 (zaktualizowanym z 8.0):

 

Ryc. 2 – Odblokowanie trybu deweloperskiego

 

5. Po odblokowaniu trybu deweloperskiego wejdź do niego i znajdź w sekcji Debugowanie funkcję dotyczącą pozorowania lokalizacji. W zależności od wersji systemu może ona mieć różną nazwę. Najczęściej spotykane są te dwie:

  1. Aplikacja do pozorowania lokalizacji
  2. Fikcyjna lokalizacja

 

6. Kliknij w tę funkcję i z listy wybierz SPace. To wszystko! Teraz wystarczy połączyć się w SPace z odbiornikiem.

 

Połączenie z odbiornikiem

Teraz przed nami gwóźdź programu, czyli połączenie z odbiornikiem. Włóż zatem baterie do odbiornika, uruchom go i ustaw aplikację tak jak na animacji poniżej:

 

Ryc. 3 – Szybka konfiguracja programu SPace

 

Jednym z etapów konfiguracji było ustawienie połączenia NTRIP (Networked Transport of RTCM via Internet Protocol), które służy do odbioru danych korekcyjnych. To ważne zagadnienie będziemy jeszcze omawiać. Należy pamiętać, że jeżeli odbiornik ma pracować z dokładnością geodezyjną, to musimy takie połączenie ustawić. Wiąże się to z wykupieniem specjalnego abonamentu, np. w systemie ASG-Eupos.

 

Czas na pomiary!

Nie zamykaj programu SPace, pozwól mu działać w tle, aby dostarczał współrzędne wysokiej jakości. Od tej pory każda Twoja aplikacja, w której pracujesz na co dzień, zyska dużo lepszą dokładność pomiaru GPS. W swoim programie nie musisz już nic zmieniać, ponieważ dzięki znajomości funkcji Pozorowanie lokalizacji zmieniłeś ustawienia w całym systemie Android. Możesz uruchomić nawet kilka aplikacji jednocześnie i wszystkie będą pracować z lepszą dokładnością. Zobacz, jaki efekt uzyskamy w mLas Inżynierze Lite:

 

Ryc. 4 – Pomiary w mLasie Lite z użyciem SPace

 

Dlaczego ekran mLas Inżyniera wyświetla statystyki pomiarowe inaczej niż SPace? Czemu nie widać np. komunikatu RTK w oknie statystyk, chociaż wiemy, że mamy tryb RTK? W tym konkretnym przypadku jest to kwestia tego jak mLas czyta dostarczane z systemu Android dane. Jak sama nazwa wskazuje, jest to aplikacja typu Lite i nie ma w niej bardziej zaawansowanej implementacji funkcji Lokalizacja (konkretnie: nie są odczytywane tzw. Mock Location Extras, czyli dodatkowe informacje, oprócz dokładności pomiaru). Jest tylko podstawowa, dzięki której w mLasie zobaczymy, że pozycja jest oraz jaka jest jej dokładność.

Oczywiście ta sytuacja może się zmienić, ponieważ wszystkie aplikacje cały czas się rozwijają. Trzeba jednak wiedzieć, że to co wyświetla się na ekranie mLas Inżyniera na filmie powyżej jest poprawne i w zupełności wystarczy do wyjścia w teren. Poniżej komunikatu ACCURACY_FINE (uzyskana dobra dokładność) widać aktualną dokładność: 0,01 m – co jest tożsame z wartością parametru HRMS w SPace (czyli właśnie dokładności pomiaru odbiornika w poziomie). Wiemy też, że takie wartości da się uzyskać tylko w trybie RTK, więc możemy być spokojni.

 

Jak wspomniałem wyżej możemy udostępnić sprzęt nas testy, jeżeli interesuje Cię praca z własnym tabletem i precyzyjnym odbiornikiem GPS. Zapraszamy!

 

GIS