Witam,
zastanawiam się nad taka rzeczą, mianowicie mam układ FGPMMOPA4 i podłączam go sobie prze UART do komputera. W śród tych szlaczków co podaje GPS wyłuskuję lokalizacje, po przerobieniu i wklejeniu w Google Maps, okazuje sie, że ta lokalizacja różni się o ok. 25km. od faktycznej lokalizacji.
Moje pytanie brzmi skąd ta różnica i czy da to się jakoś zniwelować odczytując dane z GPS, czy trzeba dodawać ręcznie poprawkę (jakąś własna stałą)?
GPS współrzędne a rzeczywiste położenie - różnica ok. 25km
- siekierzyński
- Użytkownik
- Posty: 482
- Rejestracja: 01 cze 2010, 23:12
- Lokalizacja: Nareszcie Polska
-
atelszewski
- Użytkownik
- Posty: 143
- Rejestracja: 12 sie 2005, 9:36
- Lokalizacja: Banie
Witam,
Sprawdź, czy dane wychodzące z modułu posiadają znacznik poprawności. Moduł podaje informacje o położeniu, ale niekoniecznie muszą one być precyzyjne, np. gdy nie ma odpowiedniej ilości satelitów w zasięgu.W powyższej ramce, znacznik poprawności znajduje się w trzecim polu (pola są rozdzielone przecinkami: pierwsze: adres ramki, drugie: godzina, trzecie: znacznik poprawności) i ma wartość 'A', co oznacza, że dane są poprawne. Jeśli ma wartość 'V' dane są niepoprawne (nieprecyzyjne). Twój moduł powinien nadawać tę ramkę, jeśli nie, to sprawdź jak ją włączyć. Pamiętaj też, że moduł może potrzebować trochę czasu (np. 15min) na ściągnięcie wszystkich danych, jeśli wcześniej był pozbawiony zasilania.
Obecnie korzystam z modułu Fastrax UP500 i z aplikacji producenta o nazwie Fastrax Workbench 5 - ciekawostką jest, że ten program potrafi dosyć dokładnie obliczyć położenie, nawet gdy dane z modułu nie posiadają znacznika poprawności (pewnie wykonuje jakieś dodatkowe obliczenia na danych, które do niego płyną). Z tego, co widzę, to twój moduł może być obsługiwany przez ten program, także możesz spróbować (lub znaleźć inny, może jest coś dla twojego modułu).
Wkładając dane do Google Maps, podawaj je z maksymalną dokładnością, dla powyższej ramki będzie to:
Sprawdź, czy dane wychodzące z modułu posiadają znacznik poprawności. Moduł podaje informacje o położeniu, ale niekoniecznie muszą one być precyzyjne, np. gdy nie ma odpowiedniej ilości satelitów w zasięgu.
Kod: Zaznacz cały
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6AObecnie korzystam z modułu Fastrax UP500 i z aplikacji producenta o nazwie Fastrax Workbench 5 - ciekawostką jest, że ten program potrafi dosyć dokładnie obliczyć położenie, nawet gdy dane z modułu nie posiadają znacznika poprawności (pewnie wykonuje jakieś dodatkowe obliczenia na danych, które do niego płyną). Z tego, co widzę, to twój moduł może być obsługiwany przez ten program, także możesz spróbować (lub znaleźć inny, może jest coś dla twojego modułu).
Wkładając dane do Google Maps, podawaj je z maksymalną dokładnością, dla powyższej ramki będzie to:
Kod: Zaznacz cały
48.07038,11.31-
atelszewski
- Użytkownik
- Posty: 143
- Rejestracja: 12 sie 2005, 9:36
- Lokalizacja: Banie
Witam,
Wszystko, co poprzednio napisałem jest prawdą, z małym wyjątkiem...
Google Maps spodziewa się współrzędnych wyrażonych wyłącznie w stopniach, a dane z modułu GPS są wyrażone w stopniach, minutach i ułamkowych częściach minuty. Niezbędna jest więc wcześniejsza zamiana minut na stopnie.W powyższym przykładzie, współrzędne to:
- szerokość: 48 stopni, 7 minut i 0.038 minuty
- długość: 11 stopni i 31 minut
Aby minuty wyrazić w stopniach, musisz ilość minut podzielić przez 60, stąd:
- szerokość: 48 + (7 + 0.038)/60 = 48.1173
- długość: 11 + 31/60 = 11.52
Tak więc w Google Maps powinna wylądować wartość:
Błąd, o którym pisałeś (tj. różnica 25km) brał się najprawdopodobniej właśnie stąd, że Google podawałeś dane w formie jak napisałem w pierwszej odpowiedzi.
Wszystko, co poprzednio napisałem jest prawdą, z małym wyjątkiem...
Google Maps spodziewa się współrzędnych wyrażonych wyłącznie w stopniach, a dane z modułu GPS są wyrażone w stopniach, minutach i ułamkowych częściach minuty. Niezbędna jest więc wcześniejsza zamiana minut na stopnie.
Kod: Zaznacz cały
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A- szerokość: 48 stopni, 7 minut i 0.038 minuty
- długość: 11 stopni i 31 minut
Aby minuty wyrazić w stopniach, musisz ilość minut podzielić przez 60, stąd:
- szerokość: 48 + (7 + 0.038)/60 = 48.1173
- długość: 11 + 31/60 = 11.52
Tak więc w Google Maps powinna wylądować wartość:
Kod: Zaznacz cały
48.1173,11.52- siekierzyński
- Użytkownik
- Posty: 482
- Rejestracja: 01 cze 2010, 23:12
- Lokalizacja: Nareszcie Polska