FORUM YAMAHA XT TT 600 ITALIA - www.xt600.eu

UN PO' "OT" => GPS & CARTOGRAFIA => Discussione aperta da: beaufort8 il 17 Agosto 2007, 08:29:07

Titolo: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 17 Agosto 2007, 08:29:07
Partendo dalle coordinate di due punti, come si calcola la rotta e la distanza tra di essi?
Mi servirebbe l'algoritmo per fare un programmino..... avete idea di dove andarlo a prendere??
Ho un'ideuzza che mi frulla in testa....
???
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: verixone il 17 Agosto 2007, 12:02:11
assolutamente trigonometria, differenza fra le coordinate e via di seno e coseno...

:'(

solo che non ricordo + la formula esatta...
mo' vado a vede, e poi te faccio sape'


Ciao.

Alberto
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 17 Agosto 2007, 12:07:43
Citazione di: verixone il 17 Agosto 2007, 12:02:11
assolutamente trigonometria, differenza fra le coordinate e via di seno e coseno...

:'(

solo che non ricordo + la formula esatta...
mo' vado a vede, e poi te faccio sape'


Ciao.

Alberto
Trigonometria sferica per la precisione.....
::)
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: verixone il 17 Agosto 2007, 12:09:48
Puff pufff... ariecchime!

ti posto il link alla tua soluzione: la tua incognita risulta essere r

Famme sape' se risolvi... ciao!

http://it.wikipedia.org/wiki/Sistema_di_coordinate_polari#Conversione_da_coordinate_polari_a_cartesiane (http://it.wikipedia.org/wiki/Sistema_di_coordinate_polari#Conversione_da_coordinate_polari_a_cartesiane)

Questa è l'immagine:

http://upload.wikimedia.org/wikipedia/commons/7/78/Polar_to_cartesian.svg (http://upload.wikimedia.org/wikipedia/commons/7/78/Polar_to_cartesian.svg)


In buona sostanza devi rapportare tutto ad un sistema di assi cartesiani, l'origine dei quali è esattamente UNO dei tuoi DUE punti.
La differenza fra la coppia di coordinate dei due punti ti fornirà rispettivamente X ed Y, dopodichè applichi la formula relativa.... et voila'!
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 17 Agosto 2007, 15:47:32
Citazione di: verixone il 17 Agosto 2007, 12:09:48
Puff pufff... ariecchime!

ti posto il link alla tua soluzione: la tua incognita risulta essere r

Famme sape' se risolvi... ciao!

http://it.wikipedia.org/wiki/Sistema_di_coordinate_polari#Conversione_da_coordinate_polari_a_cartesiane (http://it.wikipedia.org/wiki/Sistema_di_coordinate_polari#Conversione_da_coordinate_polari_a_cartesiane)

Questa è l'immagine:

http://upload.wikimedia.org/wikipedia/commons/7/78/Polar_to_cartesian.svg (http://upload.wikimedia.org/wikipedia/commons/7/78/Polar_to_cartesian.svg)


In buona sostanza devi rapportare tutto ad un sistema di assi cartesiani, l'origine dei quali è esattamente UNO dei tuoi DUE punti.
La differenza fra la coppia di coordinate dei due punti ti fornirà rispettivamente X ed Y, dopodichè applichi la formula relativa.... et voila'!
in realtà è un po' più complicato di così...
la teoria dovrebbe essere questa:

http://www.itaer.it/lavori/trigonsfer/TRIGONSFER.htm

(http://www.itaer.it/lavori/trigonsfer/TRIGONSFER3_file/Triangolino.gif)

Cos a = Cos b Cos c + Sen b Sen c Cos a
Cos b = Cos a Cos c + Sen a Sen c Cos b
Cos c = Cos a Cos b + Sen a Sen b Cos g

(http://www.itaer.it/lavori/trigonsfer/TRIGONSFER3_file/Figura.gif)


Cercavo però qualcosa di più immediata applicazione...
mi sa che dovrò spremere il cervellino!!
"sbemm"
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: Tsof il 17 Agosto 2007, 18:51:24
Attenzione anche al sistema di riferimento. Le coordinate geografiche classiche (latitudine e longitudine) sono sul geoide (il solido geometrico che descrive la forma della terra).
Se cominci a passare alle Gauss-Boaga, quelle sono riportate con una proiezione piana e allora puoi usare coordinate polari e cartesiane classiche.

Per brevi tragitti si tratta di differenze irrilevanti.

Nel caso di tragitti lunghi (es rotte oceaniche) si possono scegliere le cosiddette rotte lossodromiche, che costituiscono la rotta più breve fra il punto di partenza e quello di arrivo, mentre la corrispondente rotta ortodromica (quella classica) che si ottiene tracciando sulla carta la congiungente lineare fra i due punti, risulta di fatto di percorrenza più lunga.

Ma con un nick così (Beaufort) so che non puoi non saperlo ...
:riez:

Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 19 Agosto 2007, 23:36:24
Citazione di: Tsof il 17 Agosto 2007, 18:51:24


Ma con un nick così (Beaufort) so che non puoi non saperlo ...
:riez:



;)
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: MangiaErba il 20 Agosto 2007, 10:44:12
Ma che vuoi fare ?
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 20 Agosto 2007, 18:18:58
Citazione di: MangiaErba il 20 Agosto 2007, 10:44:12
Ma che vuoi fare ?
Un programmillo che analizza i file traccia del GPS
Il file trk salvato da compegps è abbastanza chiaro...
CitazioneG  WGS 84
U  1
P  Garmin  id=450  EDGE205 Software Version 3.10
Q  3158070676
I  C:\Programmi\CompeGPS\symbols\IconsPlay\person1.ico
C  0 0 0 2 -1.000000
L  -02:00:00
V  0.0 0.0 0 0 0 0 0.0 30566172.0 1
E 0|1|00-NUL-00 00:00:00|00:00:00|0|4778
i I013642DST
z  8.181732,44.181842,8.417117,44.330030
T  A 44.2803210765ºN 8.4171074163ºE 04-AUG-07 08:02:21 s 150.1 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
t 0||2|0|-1.0
T  A 44.2803173885ºN 8.4171169717ºE 04-AUG-07 08:02:28 s 150.1 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2802756466ºN 8.4169945959ºE 04-AUG-07 08:02:32 s 150.6 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2802504171ºN 8.4168904927ºE 04-AUG-07 08:02:34 s 150.6 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2801198270ºN 8.4165564738ºE 04-AUG-07 08:02:39 s 150.1 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2800558731ºN 8.4164669551ºE 04-AUG-07 08:02:41 s 150.6 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2798762489ºN 8.4161372948ºE 04-AUG-07 08:02:45 s 150.6 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2796600796ºN 8.4157909546ºE 04-AUG-07 08:02:49 s 152.5 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2796084471ºN 8.4157158528ºE 04-AUG-07 08:02:50 s 153.0 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2794244643ºN 8.4153714404ºE 04-AUG-07 08:02:54 s 155.4 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2794008274ºN 8.4151715320ºE 04-AUG-07 08:02:57 s 155.9 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
T  A 44.2795261368ºN 8.4146266244ºE 04-AUG-07 08:03:02 s 159.7 0.0 0.0 0.0 0 -1000.0 -1.0 -1 -1.0 -1.0
[/size]
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: Fabio WM XT 600 IT il 20 Agosto 2007, 19:50:09
Citazione di: beaufort8 il 17 Agosto 2007, 08:29:07
Partendo dalle coordinate di due punti, come si calcola la rotta e la distanza tra di essi?
Mi servirebbe l'algoritmo per fare un programmino..... avete idea di dove andarlo a prendere??
Ho un'ideuzza che mi frulla in testa....
???
...IO CONOSCO L'UOMO che ti puo' dare quello che cerchi...MA...cosa OFFRI in CAMBIO!?! :pazz: pazz2 ANDREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!! A RAPPORTO DAL WM!!!!!!!!!!!!!!! #risatona# :ciao:
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: MangiaErba il 20 Agosto 2007, 21:34:33
Citazione di: beaufort8 il 20 Agosto 2007, 18:18:58
Un programmillo che analizza i file traccia del GPS
Il file trk salvato da compegps è abbastanza chiaro...


Si, anche i dati in arrivo dal SAT sono in formato chiaramente leggibile ... infatti volevo farmi il programma di navigazione (no il Tom Tom, ma OziExplorer) per togliere molte funzioni che davvero non userò mai e inserire qualcosa che invece non c'è (come la possibilità di inviare SMS con le coordinate ogni TOT minuti, o magari via FTP su un server a cui i miei potrebbero collegarsi qualora venisse bujo e io fossi ancora fuori in moto (una volta uscivo spesso da solo e, sinceramente, mi piacerebbe ricominciare ... la compagnia non va bene per cercare percorsi nuovi ... troppo piatto ... troppo noioso ... troppo bosco, troppa poca mula .... )
Credo che per le nostre esigenze e lavorando con le coordinate UTM non serva tener conto della sfericità della Terra (perchè è sferica vero ? Non è che RazzingaZ adesso rimette in discussione anche quello ?  #risatona# #risatona# #risatona# MA CHE POLEMICO CHE SONO  :riez: :riez: :riez:)

Ma cosa vuoi fare che Compe e Ozi non fanno ? O vuoi farlo per il puro gusto di farlo (che non è una motivazione da poco) ?
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 21 Agosto 2007, 09:30:04
Citazione di: MangiaErba il 20 Agosto 2007, 21:34:33
Si, anche i dati in arrivo dal SAT sono in formato chiaramente leggibile ... infatti volevo farmi il programma di navigazione (no il Tom Tom, ma OziExplorer) per togliere molte funzioni che davvero non userò mai e inserire qualcosa che invece non c'è (come la possibilità di inviare SMS con le coordinate ogni TOT minuti, o magari via FTP su un server a cui i miei potrebbero collegarsi qualora venisse bujo e io fossi ancora fuori in moto (una volta uscivo spesso da solo e, sinceramente, mi piacerebbe ricominciare ... la compagnia non va bene per cercare percorsi nuovi ... troppo piatto ... troppo noioso ... troppo bosco, troppa poca mula .... )
Credo che per le nostre esigenze e lavorando con le coordinate UTM non serva tener conto della sfericità della Terra (perchè è sferica vero ? Non è che RazzingaZ adesso rimette in discussione anche quello ?  #risatona# #risatona# #risatona# MA CHE POLEMICO CHE SONO  :riez: :riez: :riez:)

Ma cosa vuoi fare che Compe e Ozi non fanno ? O vuoi farlo per il puro gusto di farlo (che non è una motivazione da poco) ?

Sto facendo (cercando di...) un programmillo che analizza le singole tratte tra un punto traccia e il successivo.
Per il momento mi piacerebbe arrivare ad avere, per ogni tratta, direzione, dislivello, tempo trascorso, distanza.

Il fine ultimo non è questo, ma non te lo posso dire, altrimenti dopo dovrei ucciderti.  -ninzo'-

Ho trovato una soluzione, però ci deve essere qualche baco... elabora un bel numero di tratte e poi su una coppia di punti si pianta.
L'ho presa qui:
http://groups.google.it/group/it.comp.lang.visual-basic/browse_thread/thread/bc76b7a6277b826c/65cfad6eb685c2d1?lnk=st&q=calcolo+distanza+comuni&rnum=2
e qui:
http://www.flanguasco.org/VisualBasic/VisualBasic.html
Questo è il risultato che ottengo:
CitazioneLat   Long   Time   Alt   Secondi   Dislivello   Distanza   Rotta   
44,28031739   8,417116972   8.02.28   150,1   0   0   0   270   
44,28027565   8,416994596   8.02.32   150,6   4   0,5   10,8   245   
44,28025042   8,416890493   8.02.34   150,6   2   0   8,7   251   
44,28011983   8,416556474   8.02.39   150,1   5   -0,5   30,2   241   
44,28005587   8,416466955   8.02.41   150,6   2   0,5   10   225   
44,27987625   8,416137295   8.02.45   150,6   4   0   32,9   233   
44,27966008   8,415790955   8.02.49   152,5   4   1,9   36,5   229   
44,27960845   8,415715853   8.02.50   153   1   0,5   8,3   226   
44,27942446   8,41537144   8.02.54   155,4   4   2,4   34,1   233   
44,27940083   8,415171532   8.02.57   155,9   3   0,5   16,1   261   
44,27952614   8,414626624   8.03.02   159,7   5   3,8   45,5   288   
44,27955187   8,41455102   8.03.03   160,2   1   0,5   6,6   295   
44,27957634   8,414330492   8.03.06   159,7   3   -0,5   17,7   279   
44,27969403   8,414100492   8.03.10   161,2   4   1,5   22,5   306   
44,27978866   8,413999993   8.03.12   162,6   2   1,4   13,2   323   
44,27991196   8,413698832   8.03.16   167,4   4   4,8   27,6   300   
44,27993685   8,413603529   8.03.17   168,4   1   1   8,1   290   
44,27993333   8,413230199   8.03.21   172,7   4   4,3   29,7   269   
44,27992444   8,413121235   8.03.22   172,7   1   0   8,7   264   
44,2798014   8,412792832   8.03.26   175,6   4   2,9   29,4   242   
44,27950317   8,412350435   8.03.31   178   5   2,4   48,3   227   
44,27921073   8,412089087   8.03.36   174,6   5   -3,4   38,5   213   
44,2789928   8,411887335   8.03.39   174,1   3   -0,5   29   214   
44,27876607   8,411618695   8.03.43   173,2   4   -0,9   33   220   
44,27869557   8,411527835   8.03.47   174,1   4   0,9   10,6   223   
44,27883974   8,41152993   8.03.50   180,9   3   6,8   16   1   
44,27887092   8,411450554   8.03.52   182,8   2   1,9   7,2   299   
44,27880152   8,411348881   8.03.54   185,2   2   2,4   11,2   226   
44,27874184   8,411148889   8.03.58   190,5   4   5,3   17,2   247   
44,27892608   8,411110751   8.04.01   195,8   3   5,3   20,7   352   

solo che poi mi si pianta arrivato qui:
44,28155246   8,329551565   9.41.08   665,9
44,28158959   8,329551565   9.41.29   668,3

Epperchè????

P.S. il problema non è dato dalla longitudine con valori uguali... scazza sulla latitudine, nonsopperchè...

Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: MangiaErba il 21 Agosto 2007, 10:53:08
Citazione di: beaufort8 il 21 Agosto 2007, 09:30:04
Sto facendo (cercando di...) un programmillo che analizza le singole tratte tra un punto traccia e il successivo.
Per il momento mi piacerebbe arrivare ad avere, per ogni tratta, direzione, dislivello, tempo trascorso, distanza.

Il fine ultimo non è questo, ma non te lo posso dire, altrimenti dopo dovrei ucciderti.  -ninzo'-

Ho trovato una soluzione, però ci deve essere qualche baco... elabora un bel numero di tratte e poi su una coppia di punti si pianta.
L'ho presa qui:
http://groups.google.it/group/it.comp.lang.visual-basic/browse_thread/thread/bc76b7a6277b826c/65cfad6eb685c2d1?lnk=st&q=calcolo+distanza+comuni&rnum=2
e qui:
http://www.flanguasco.org/VisualBasic/VisualBasic.html
Questo è il risultato che ottengo:
solo che poi mi si pianta arrivato qui:
44,28155246   8,329551565   9.41.08   665,9
44,28158959   8,329551565   9.41.29   668,3

Epperchè????

P.S. il problema non è dato dalla longitudine con valori uguali... scazza sulla latitudine, nonsopperchè...


Hai provato a fare un po' di debug e tracciar le varie variabili ?
Purtroppo ci sono delle forme sintattiche che non capisco (! o # dopo i numeri) e non vedo la funzione principale che chiama le due funzioni.
Hai provato a cambiare in modo fittizio le coordinate dove si impapocchia per capire se son quelle coordinate a mandarlo in palla oppure se il problema è nel ciclo (usi un ciclo per calcolare a due a due le varie coordinate no ?)

Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 21 Agosto 2007, 11:53:25
Citazione di: MangiaErba il 21 Agosto 2007, 10:53:08
Hai provato a fare un po' di debug e tracciar le varie variabili ?
Purtroppo ci sono delle forme sintattiche che non capisco (! o # dopo i numeri) e non vedo la funzione principale che chiama le due funzioni.
Hai provato a cambiare in modo fittizio le coordinate dove si impapocchia per capire se son quelle coordinate a mandarlo in palla oppure se il problema è nel ciclo (usi un ciclo per calcolare a due a due le varie coordinate no ?)


i # non mi sembra che facciano nulla.
Ho scritto un pezzetto di codice che lancia la routine in modo da inserire le coordinate come costanti, e con quei valori si impapocchia.
Il problema è qui:
        A = Acos((Sin(Lt2) - Sin(Lt1) * Cos(D)) / (Sin(D) * Cos(Lt1)))
in pratica (Sin(Lt2) - Sin(Lt1) * Cos(D)) / (Sin(D) * Cos(Lt1)) restituisce un valore maggiore di 1 e la funzione ACOS vuole valori compresi tra -1 e 1

A questo punto il nodo sembra essere nell'algoritmo...

Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 21 Agosto 2007, 12:34:50
hmmmmm  :dubbio:
http://en.wikipedia.org/wiki/Great_circle_distance

http://www.movable-type.co.uk/scripts/latlong.html
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: AndreaC il 21 Agosto 2007, 12:37:50
Citazione di: Fabio WM XT 600 IT il 20 Agosto 2007, 19:50:09
...IO CONOSCO L'UOMO che ti puo' dare quello che cerchi...MA...cosa OFFRI in CAMBIO!?! :pazz: pazz2 ANDREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!! A RAPPORTO DAL WM!!!!!!!!!!!!!!! #risatona# :ciao:
Spero tu non ce l'abbia con me...  :dubbio: non mi avrete!!
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: AndreaC il 21 Agosto 2007, 12:42:17
Scusa marco ma non puoi usare un normale programma che tratta le le tracce per sapere la lunghezza della stessa?
Perchè tra l'altro se hai un gps è molto più affidabile il parziale che ha intergrato, infatti quando registri non prendi tutti i punti mentre invece il parziale somma tutte le distanze che percorri una volta al secondo...
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: beaufort8 il 21 Agosto 2007, 12:46:24
Citazione di: AndreaC il 21 Agosto 2007, 12:42:17
Scusa marco ma non puoi usare un normale programma che tratta le le tracce per sapere la lunghezza della stessa?
Perchè tra l'altro se hai un gps è molto più affidabile il parziale che ha intergrato, infatti quando registri non prendi tutti i punti mentre invece il parziale somma tutte le distanze che percorri una volta al secondo...
:nooo:
Voglio fare un'analisi della spezzata composta dalle singole tratte...
Comunque sono solo s@ghe mentali  "sbemm"
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: AndreaC il 21 Agosto 2007, 12:48:35
Citazione di: beaufort8 il 21 Agosto 2007, 12:46:24
:nooo:
Voglio fare un'analisi della spezzata composta dalle singole tratte...

Cos'è un tipo di frattura?  ;D

Cmq nell'ultimo link di wiki mi sembra ci sia tutto no?
Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: Tsof il 21 Agosto 2007, 13:00:46
Un po' di reminiscenze di geometria analtica dal mio manabile di matematica, una specie di bigino che mi conservo e che trovo utilissimo in certe situazioni:


Distanza fra due punti in coordinate cartesiane
Dati due punti P1 e P2, con coordinate rispettivamente (x1,y1) e (x2,y2):
d = P1P2 = radq((x2-x1)^2+(y2-y1)^2))

Distanza fra due punti in coordinate polariDati due punti P1 e P2, con coordinate rispettivamente (rh1,th1) e (rh2,th2) [in cui rh è in realtà rho, e indica la distanza del punto dall'origine e th è in realtà theta, e indica l'angolo con l'asse orizzontale per ciascuno dei due punti]

d = P1P2 = radq((rh1^2) + (rh2^2) - (2 rh1 rh2 cos(th1-th2)))

Titolo: Re: HELP Calcolo rotta e distanza tra due punti
Inserito da: MangiaErba il 21 Agosto 2007, 19:39:14
Citazione di: beaufort8 il 21 Agosto 2007, 12:46:24
:nooo:
Voglio fare un'analisi della spezzata composta dalle singole tratte...
Comunque sono solo s@ghe mentali  "sbemm"

Se è solo quello lo puoi fare con OziExplorer .. scompone le tracce in base al tempo per cui identifica abbastanza bene le varie tratte

In merito alla formula non so cosa dirti ... non posso nemmeno provarlo perchè non ho (e non è un caso  #risatona#) VBasic ...