geolocal a écrit:Dlzlogic,
J'aimerais connaître ce module, ainsi que l'explication qui en fait partie, si ce n'est pas trop exiger.
La curiosité nétant pas un vilain défaut, en ce domaine !
Merci.
Calcul de la longueur d'un arc de grand cercle : la distance la plus courte d'un point à un autre sur l'ellipsoïde.
On suppose être dans le système WGS84.
On calcule le sinus de la latitude moyenne.
s=sin((Ma+Mb)/2)
On connait l'aplatissement f.
On calcule une valeur e2 = 2*f-f*f
On calcule une valeur s2 = s*s
Si R0 est le rayon à l'équateur, alors
R1 = R0*(1-e2)/(1-e2*s2)^1.5
R2 = R0/sqrt(1-e2*s2)
Le rayon local sera
RR=sqrt(r1*r2)
Le longueur de l'arc
Arc = acos(sin(Ma)*sin(Mb) + cos(Ma)*cos(Mb)*cos(La-Lb))
où Ma et Mb sont les latitudes de A et B ; La et Lb les longitudes de A et B
La longueur de l'arc est Long = Arc * RR
Calcul de l'azimut
On calcule l'arc entre les deux points (voir plus haut)
L'azimut vaut
Zab=asin(sin((Lb-La)) * cos(Mb) / sin(ArcAB));
Pour calculer un point connaissant la distance et l'azimut on fait une itération à l'intérieur de laquelle on utilise ces 2 formules.
On peut aussi calculer la distance la plus courte d'un point à un arc, bref, faire toutes les opérations habituelles que l'on fait en géométrie plane.
Je tiens à préciser que ces formules ne sont valables que jusqu'à une distance de 200 Km et que la précision est de une à deux dizaines de centimètres.
Je sais qu'il existe des formules plus précises, je ne les connais pas.