PHP NMEA na mapie google - zła lokalizacja

PHP NMEA na mapie google - zła lokalizacja
YO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 540
0

Dzień dobry.
Robię program zamieniający koordynaty z NMEA na GPS dla Google Maps.
Korzystam z takiej funkcji:

Kopiuj
degWhole=Math.round((deg/100)); //gives me the whole degree part of Longitude
degDec = (deg - degWhole*100)/60; //give me fractional part of longitude
deg = degWhole + degDec; //Gives complete correct decimal form of Longitude degrees

Funkcja pochodzi z: http://www.toptechboy.com/arduino/lesson-25-display-your-gps-data-as-track-on-google-earth/

Ta funkcja pobiera dane takie jak: "deg = 5355.0527;"

a potem wynik wrzucam do:

Kopiuj
   var point".$i." = new google.maps.LatLng(
                 ( tutaj ),
                 ( tutaj2));
             var marker".$i." = new google.maps.Marker({
               map: map,
               position: point".$i."
             });";

kod działa, ale koordynaty są parędziesiąt kflometrow dalej...
i to dzieje się gdy jest dużo punktów
wtedy trasa jest rozbita na kilka niezależnych punktów ...

Co jest nie tak w przeliczeniu punktów w standardzie NMEA?

GS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1265
0

Kilkadziesiąt km. to jest błąd rzędu pół stopnia. Tak duży błąd mógłby wziąć się stąd, że gdzieś tracisz część dziesiętną, degDec. Może kwestia reprezentacji danych?
Albo kwestia trybu zaokrąglania? Pamiętaj, że musisz zaokrąglać w dół. Może dla pewności użyj jakiegoś floor()... ?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.