Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

Ficu 24 Sie 2013 22:36 1224 2
  • #1 24 Sie 2013 22:36
    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:

    Code:
    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: basic4gl
    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

    0 2
  • #2 25 Sie 2013 07:14
    krru
    Poziom 32  

    Nie znam bascoma, ale widzę kilka wątpliwych elementow:

    Ficu napisał:

    U mnie wygląda to tak:
    Kod: basic4gl
    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: basic4gl
    Zaloguj się, aby zobaczyć kod


    Cos tutaj za duzo end if-ow

    Ficu napisał:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


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

    Ficu napisał:

    Kod: basic4gl
    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

    0
  • #3 25 Sie 2013 15:42
    nsvinc
    Poziom 35  

    Cytat:
    Wynik jaki otrzymuje to kilkunastotysięczne liczby

    Jednostki! A co w tym dziwnego skoro wspolrzedne geo to tez kilkunastotysieczne liczby? ;] Rozpisz wzory na kartce i wyciągnij jednostkę w której dostajesz wynik obliczeń...

    0