Buongiorno a tutti, sto realizzando un progetto con un GPS e mi sono bloccato sul calcolo della distanza fra due coordinate, probabilmente perché sbaglio a usare i tipi di dato. Chiedo quindi aiuto a voi!
Date due cordinate cosi descritte:
latA 43.824254
lngA 10.477824
latB 43.825185
lngB 10.482122
La formula da usare è questa:
=6372,795477598* ARCCOS(SEN(latA) * SEN(latB) + COS(latA) * COS(latB) * COS(lngA-lngB)
su Execel funziona, verificata tramite Google Earth ( in questo esempio: 360m)
chiaramente nelle funzioni i valori vanno convertiti da gradi in radianti rad=gradi*3,14/180
il codice che ho scritto è:
float latA=43.824254;
float latB=43.825185;
float lngA=10.477824;
float lngB=10.482122;
float dist;
per prima cosa, per cortesia, presentati nell'apposita sezione (Generale -> presentazione); evitando di scrivere solo mezza riga ma specificando che conoscenze hai...fintanto che non fai questo nessuno può risponderti.
leggi bene il regolamento...in quanto in questo c'è scritto che il crossposting è proibito (anche tra lingue diverse).
Decidi in quale vuoi continuare la discussione e "chiudi" l'altro.
ciao e grazie del benvenuto.
Mi ero già presentato parecchio tempo addietro, ma sono "saltuario"... comunque non la ritrovo e l'ho rifatta.
Perdonate il crossposting... e il fatto che non riesco a chiudere un post. Non trovo il comando.
Dato la scarsa precisione dei float di Arduino le formule "sacre" tratte dei libri non vanno molto bene
Se decidi di rimanere in Italia, stasera ne parliamo, ci sono strade interessanti...
I float di arduino a 8 bit hanno 5-6 cifre giuste. Le altre cifre decimali sono casuali. Per quello il calcolo Tuo é troppo inpreciso per riusire a calcolare qualcosa.
Ciao Uwe
grazie a tutti, ho usato la funzione distance_between, come suggerito da Datman e altri.
Segnalo solo che nella documentazione si trova " TinyGPSPlus.distanceBetween" col punto, mentre la sintassi giusta è TinyGPSPlus::distance_between (con i doppi doppi punti)