Accedi per seguire   
Seguaci 0
*rossonero*

[c++]funzione Che Calcola La Distanza

7 messaggi in questa discussione

Salve,stiamo sviluppando un'applicazione web, un sistema di gestione di un db ferroviario..funzionalità cardine del sistema è oltre l'individuazione dei treni dati in input una stazione di partenza e di arrivo e una fascia oraria,anche la decisione delle tratte più convenienti per un viaggio(che abbiamo risolto tramite un algoritmo simil-backtracking).abbiamo deciso di individuare ogni città con delle coordinate GPS(latitudine e longitudine) e ora quello che cerchiamo è è una funzione che dati 2 punti in gps calcola la distanza.spero possiate aiutarci.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Salve,stiamo sviluppando un'applicazione web, un sistema di gestione di un db ferroviario..funzionalità cardine del sistema è oltre l'individuazione dei treni dati in input una stazione di partenza e di arrivo e una fascia oraria,anche la decisione delle tratte più convenienti per un viaggio(che abbiamo risolto tramite un algoritmo simil-backtracking).abbiamo deciso di individuare ogni città con delle coordinate GPS(latitudine e longitudine) e ora quello che cerchiamo è è una funzione che dati 2 punti in gps calcola la distanza.spero possiate aiutarci.

Diciamo che questo, più che un problema di programmazione, è un problema di matematica anzi, per essere più precisi, di geodesia...

Siano (a1, b1) e (a2, b2) la latitudine e longitudine di due punti A e B.

Sia Db la differenza tra le due longitudini e

Sia Do la distanza angolare tra due punti (A, B)

Do = arccos(sin(a1)*sin(a2)+cos(b1)*cos(b2)*cos(Db))

Do * 6360 da la distanza in Km...

Questa formula può generare un errore elevato quando la distanza è breve (a causa dell'arccos troppo poco accurato). In questo caso è meglio utilizzare una formula che prevede l'arctan:

Do = arctan(sqrt((cos(a2)*sin(Db))^2+ (cos(a1)*sin(a2)-sin(a1)*cos(a2)*cos(Db))^2)/(sin(a1)*sin(a2)+cos(a1)*cos(a2)*cos(Db)))

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Anche se in ritardo ti ringrazio x la delucidazione...spero che tu possa continuare ad aiutarmi in futuro!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Anche se in ritardo ti ringrazio x la delucidazione...spero che tu possa continuare ad aiutarmi in futuro!

Lo spero tanto anch'io... :)

Per qualsiasi problema... Sai dove trovarci eheheheheh ;-)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Diciamo che questo, più che un problema di programmazione, è un problema di matematica anzi, per essere più precisi, di geodesia...

Siano (a1, b1) e (a2, b2) la latitudine e longitudine di due punti A e B.

Sia Db la differenza tra le due longitudini e

Sia Do la distanza angolare tra due punti (A, B)

Do = arccos(sin(a1)*sin(a2)+cos(b1)*cos(b2)*cos(Db))

Do * 6360 da la distanza in Km...

Questa formula può generare un errore elevato quando la distanza è breve (a causa dell'arccos troppo poco accurato). In questo caso è meglio utilizzare una formula che prevede l'arctan:

Do = arctan(sqrt((cos(a2)*sin(Db))^2+ (cos(a1)*sin(a2)-sin(a1)*cos(a2)*cos(Db))^2)/(sin(a1)*sin(a2)+cos(a1)*cos(a2)*cos(Db)))

Prozac sei un "mostro" ( nel senso buono)... :):P:P bravo!!!!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Prozac sei un "mostro" ( nel senso buono)... :):P:P bravo!!!!

:omaggi: Grazie :wub:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Complimenti per la foto di Rabarama,

Vorrei chiedere questa informazione.

Sto sviluppando una applicazione integrata con il GPS per il posizionamento delle opere d'arte.

Ho due insieme di coordinate: La prima fornita via gprs da un trasponder attivo.

La seconda fornita dal ricevitore gps del palmare.

E' possibile:

a) Calcolare l'angolo "di rotta" in gradi da visualizzare sul palmare in modo da creare una freccia che indichi la posizione dell'oggetto.

Grazie

Federico

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0