Ed_22 Comment obtenir un tracée de route avec des coordonnées GPS

ed_22

XLDnaute Nouveau
Bonjour à tous. Je suis nouveau sur le forum. Je m'adresse à vous pour vous solliciter car votre aide pourrait m'être précieuse. J'ai un fichier Excell avec plusieurs coordonnée GPS. J'aimerai savoir s'il serait possible à travers par une maccro, un logiciel qui permettrait d'entrer plusieurs coordonnée GPS en même temps pour obtenir un tracé de route.

N'hésiter pas à revenir vers moi pour tout complément d'information. Je serai ravi d'échanger avec vous. :)

Je vous souhaite une agréable journée

A très vite sur ce forum
 

Dranreb

XLDnaute Barbatruc
Bonjour.
En attendant que @ed_22 ouvre une discussion sur le bon forum, j'indique une fonction perso valable pour la France qui convertit des coordonnées GPS en coordonnées kilométriques utilisables sur un graphique en nuage de points..
VB:
Function ProjecStéréo(ByVal Lat As Double, ByVal Lon As Double) As Variant
   Dim XProj As Double, YProj As Double
   CalcProjecStéréo XProj, YProj, Lat, Lon
   ProjecStéréo = Array(XProj, YProj)
   End Function
Sub CalcProjecStéréo(XProj As Double, YProj As Double, ByVal Lat As Double, ByVal Lon As Double)
   Const LonRéf = 1.625, CosLatRéf = 544030691 / 795840868, SinLatRéf = (1 - CosLatRéf ^ 2) ^ 0.5
   Dim X As Double, Y As Double, Z As Double, Zr As Double, Éch As Double
   Lat = Rad(Lat): Lon = Rad(Lon - LonRéf)
   Y = Sin(Lat): Z = Cos(Lat): X = Sin(Lon) * Z: Z = Cos(Lon) * Z
   Zr = Z * CosLatRéf + Y * SinLatRéf: Y = Y * CosLatRéf - Z * SinLatRéf
   Éch = 2 / (Zr + 1) * 6368: XProj = X * Éch: YProj = Y * Éch
   End Sub
Private Function Rad(ByVal Deg As Double) As Double
   Const K = 14964008 / 857374503: Rad = Deg * K
   End Function
 

ed_22

XLDnaute Nouveau
Bonjour.
En attendant que @ed_22 ouvre une discussion sur le bon forum, j'indique une fonction perso valable pour la France qui convertit des coordonnées GPS en coordonnées kilométriques utilisables sur un graphique en nuage de points..
VB:
Function ProjecStéréo(ByVal Lat As Double, ByVal Lon As Double) As Variant
   Dim XProj As Double, YProj As Double
   CalcProjecStéréo XProj, YProj, Lat, Lon
   ProjecStéréo = Array(XProj, YProj)
   End Function
Sub CalcProjecStéréo(XProj As Double, YProj As Double, ByVal Lat As Double, ByVal Lon As Double)
   Const LonRéf = 1.625, CosLatRéf = 544030691 / 795840868, SinLatRéf = (1 - CosLatRéf ^ 2) ^ 0.5
   Dim X As Double, Y As Double, Z As Double, Zr As Double, Éch As Double
   Lat = Rad(Lat): Lon = Rad(Lon - LonRéf)
   Y = Sin(Lat): Z = Cos(Lat): X = Sin(Lon) * Z: Z = Cos(Lon) * Z
   Zr = Z * CosLatRéf + Y * SinLatRéf: Y = Y * CosLatRéf - Z * SinLatRéf
   Éch = 2 / (Zr + 1) * 6368: XProj = X * Éch: YProj = Y * Éch
   End Sub
Private Function Rad(ByVal Deg As Double) As Double
   Const K = 14964008 / 857374503: Rad = Deg * K
   End Function
Bonjour @Dranreb pouvez vous m'expliquer de manière détailler la fonction que vous m'avez proposé.

Merci

Je vous souhaite une agréable journée
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je m'aperçois que je n'ai rien dit du principe de calcul de la Sub CalcProjecStéréo invoquée par ma Function ProjecStéréo, elle même conçue pour une formule matricielle de cellule.
Le calage sur la longitude de référence (1,625°) est effectué d'emblée puisqu'elle commence par calculer les positions x, y, z du point vu de cette longitude mais à l'équateur et sur une sphère de rayon 1.
Elle recalcule ensuite y et z (Zr comme nouveau z) par rotation autour de l'axe x (la position sur celui ci ne change plus) vers la latitude de référence (46,875°).
Il ne reste plus qu'à calculer puis appliquer l'échelle de x et y d'après la profondeur Zr selon la règle de projection stéréographique sur une shpère du rayon de la terre diminué de 3 km par rapport à celui utilisé pour le calcul de distance entre deux points GPS, afin de compenser un tant soit peu l'exagération des distances à mesure qu'on s'éloigne de l'origine retenue.
 

Discussions similaires

Statistiques des forums

Discussions
314 487
Messages
2 110 121
Membres
110 677
dernier inscrit
volare