logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATMEGA168P] [BASCOM] - haversine formula - mierzenie dystansu z GPS

Ficu 24 Sie 2013 22:36 1821 2
REKLAMA
  • #1 12664392
    Ficu
    Poziom 31  
    Witam,
    do atmegi podłączony jest GPS, odczytuje długość i szerokość w postaci: długość-51478221, szerokość-15405094. Do obliczania dystansu chcę użyć haversine formula:
    a = sin²(Δφ/2) + cos(φ1).cos(φ2).sin²(Δλ/2)
    c = 2.atan2(√a, √(1−a))
    d = R.c
    where 	φ is latitude, λ is longitude, R is earth’s radius (mean radius = 6,371km)
      	note that angles need to be in radians to pass to trig functions!
    JavaScript: 	
    
    var R = 6371; // km
    var dLat = (lat2-lat1).toRad();
    var dLon = (lon2-lon1).toRad();
    var lat1 = lat1.toRad();
    var lat2 = lat2.toRad();
    
    var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
            Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    var d = R * c;


    U mnie wygląda to tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Wynik jaki otrzymuje to kilkunastotysięczne liczby :?:

    Nie wiem gdzie popełniam błąd, może ktoś ma jakiś pomysł?

    Pozdrawiam
  • REKLAMA
  • #2 12664941
    krru
    Poziom 33  
    Nie znam bascoma, ale widzę kilka wątpliwych elementow:

    Ficu napisał:

    U mnie wygląda to tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Rozumiem, że na wejściu ma szerokosc i dlugosc w postaci tekstow.
    Pokaz jak one wygladaja dla danych współrzędnych z GPS. Najlepiej jakbyś
    pokazał przykładowe sekwencje GPS i odpowiadajace im tych wartosci zmiennych.

    Ficu napisał:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Cos tutaj za duzo end if-ow

    Ficu napisał:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    C i D są wynikami takich samych wyrażeń - dziwne.

    Ficu napisał:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Co to jest Buf_dyst? Czyżbyś liczył sumę odległości jakiejś serii punktów? Może lepiej sprawdzaj pojedyncze składniki tej sumy.

    PS. Sprawdzone wzory na różne zagadnienia nawigacyjne sapod tym linkiem
REKLAMA