Obecnie opracowuję małą aplikację dla systemu Android, która korzysta z GPS.
Kiedy klikam przycisk, zaczynam nagrywać „ścieżkę”. Jeśli spaceruję, co sekundę zapisuję swoją pozycję w pliku. Działa to doskonale, z wyjątkiem jednej rzeczy:
Zapisuję nie tylko długość i szerokość geograficzną, ale także aktualną wysokość. Przeglądając dane zauważyłem, że wysokość skacze kilka razy.
Na przykład wartości wysokości wyglądają tak:
271,4073616670083; 271,5165709069828; 345,6; 271,58538936056465;
Wartości około 270 metrów są całkiem dobre. Skoki zdarzają się nieregularnie, ale dość często (co 15 sekund jest co najmniej 1 skok). A wartości zawsze podskakują do około 340 metrów.
Podczas nagrywania śladu za pomocą mojej aplikacji chodziłem też z aplikacją o nazwie NMEA Recorder. Ta aplikacja rejestrowała również wartości wysokości, ale nie podskakują tak, jak wartości, które otrzymuję.
Wiem, że wartości wysokości GPS (obliczone przez WGS84-Ellipsoid) nie są bardzo dokładne, ale wciąż nie wyjaśnia to, dlaczego wartości czasami skaczą.
Byłoby miło, gdyby ktoś mógł mi powiedzieć, dlaczego takie skoki się zdarzają.
Odpowiedzi:
Wyobraź sobie kilka satelitów rozmieszczonych równomiernie nad tobą. Teraz wybierz tylko jednego satelitę. Wizualizuj kulę wyśrodkowaną wokół tego satelity z promieniem Twojej dokładnej odległości od niego. Zrób to samo dla każdego widocznego satelity.
To, co teraz widzisz, to kilka sfer, które przecinają się dokładnie tam, gdzie stoisz. Zasadniczo tak działa odczyt GPS.
Niestety sfery te przecinają się w więcej niż jednym punkcie. Jak widać na poniższym obrazie, możliwe jest uzyskanie fałszywego odczytu w zależności od VDOP. Zazwyczaj odczyt satelity jest dość niski lub wysoki na horyzoncie.
Jeśli chcesz, aby aplikacja była dokładniejsza, musisz spojrzeć na jakość sygnałów i (jeśli są dostępne) obliczenia DOP przed „zaufaniem” lokalizacji.
źródło
Jako inżynier, który pracował z satelitami GPS, mogę wyjaśnić - ma to związek z liczbą satelitów GPS, z których otrzymujesz sygnały do swoich odczytów. W obecnym Globalnym Systemie Pozycyjnym są 24 pracujące satelity i w zależności od lokalizacji (w budynku, pod drzewami, między wysokimi budynkami itp. Wybierzesz sygnały z 3 lub 4 satelitów. Sygnały z 3 satelitów przecinają się łukiem między ich sferami a dane wysokościowe mogą nie być dokładne. Sygnały z 4 satelitów są dość dokładne, ponieważ przecinają się w jednym punkcie! Mam nadzieję, że to pomaga.
źródło