Une des fonctions les plus communes de la géographie et des systèmes modernes, c'est le calcul de la distance géographique entre deux coordonnées de Longitude et de Latitude. Il n'y a aucune nécessité de grande connaissance en trigonométrie pour arriver à se genre de calcul dans le format qu'on le souhaite, Km, Miles ou Miles Nautiques. Ainsi, si vous savez les coordonnées suivantes :
Ville | Latitude | Longitude |
---|---|---|
Montréal | 45 31N | 73 34O |
Paris | 48 50N | 2 20E |
A l'aide du code source ABC suivant, vous trouvez la réponse que vous souhaitez :
- HOW TO RETURN arccos (a):
- SELECT:
- abs a = 1:
- RETURN (1 - a) * pi / 2
- ELSE:
- RETURN (arctan(-a / (root (1 - a * a)))) + 2 * (arctan 1)
-
- HOW TO RETURN coordtodeltakm (q1latitude,q1latideg,q1latidirection,q1longitude,q1longdeg,q1longdirection,q2latitude,q2latideg,q2latidirection,q2longitude,q2longdeg,q2longdirection):
- PUT (q1latitude+(q1latideg/60.0))*pi/180 IN a1
- IF q1latidirection="N":
- PUT -a1 IN a1
- PUT (q1longitude+(q1longdeg/60.0))*pi/180 IN b1
- IF q1longdirection="O":
- PUT -b1 IN b1
- PUT (q2latitude+(q2latideg/60.0))*pi/180 IN a2
- IF q2latidirection="N":
- PUT -a2 IN a2
- PUT (q2longitude+(q2longdeg/60.0))*pi/180 IN b2
- IF q2longdirection="O":
- PUT -b2 IN b2
- RETURN (arccos (((cos a1)*(cos b1)*(cos a2)*(cos b2)) + ((cos a1)*(sin b1)*(cos a2)*(sin b2)) + ((sin a1)*(sin a2)))) * 6378.0
-
- HOW TO RETURN coordtodeltastatutemiles(q1latitude,q1latideg,q1latidirection,q1longitude,q1longdeg,q1longdirection,q2latitude,q2latideg,q2latidirection,q2longitude,q2longdeg,q2longdirection):
- PUT (q1latitude+(q1latideg/60.0))*pi/180 IN a1
- IF q1latidirection="N":
- PUT -a1 IN a1
- PUT (q1longitude+(q1longdeg/60.0))*pi/180 IN b1
- IF q1longdirection="O":
- PUT -b1 IN b1
- PUT (q2latitude+(q2latideg/60.0))*pi/180 IN a2
- IF q2latidirection="N":
- PUT -a2 IN a2
- PUT (q2longitude+(q2longdeg/60.0))*pi/180 IN b2
- IF q2longdirection="O":
- PUT -b2 IN b2
- RETURN (arccos (((cos a1)*(cos b1)*(cos a2)*(cos b2)) + ((cos a1)*(sin b1)*(cos a2)*(sin b2)) + ((sin a1)*(sin a2)))) * 3963.1
-
- HOW TO RETURN coordtodeltanauticalmiles(q1latitude,q1latideg,q1latidirection,q1longitude,q1longdeg,q1longdirection,q2latitude,q2latideg,q2latidirection,q2longitude,q2longdeg,q2longdirection):
- PUT (q1latitude+(q1latideg/60.0))*pi/180 IN a1
- IF q1latidirection="N":
- PUT -a1 IN a1
- PUT (q1longitude+(q1longdeg/60.0))*pi/180 IN b1
- IF q1longdirection="O":
- PUT -b1 IN b1
- PUT (q2latitude+(q2latideg/60.0))*pi/180 IN a2
- IF q2latidirection="N":
- PUT -a2 IN a2
- PUT (q2longitude+(q2longdeg/60.0))*pi/180 IN b2
- IF q2longdirection="O":
- PUT -b2 IN b2
- RETURN (arccos (((cos a1)*(cos b1)*(cos a2)*(cos b2)) + ((cos a1)*(sin b1)*(cos a2)*(sin b2)) + ((sin a1)*(sin a2)))) * 3443.9
-
- WRITE "Distance entre Montréal et Paris en Km: "
- WRITE coordtodeltakm(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E') /
- WRITE "Distance entre Montréal et Paris en Miles: "
- WRITE coordtodeltastatutemiles(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E') /
- WRITE "Distance entre Montréal et Paris en Miles Nautique: "
- WRITE coordtodeltanauticalmiles(45, 31,'N', 73, 34,'O', 48, 50,'N', 2, 20,'E') /
-
on obtiendra le résultat suivant :
Distance entre Montréal et Paris en Km: 5510.16761889Distance entre Montréal et Paris en Miles: 3423.85470217
Distance entre Montréal et Paris en Miles Nautique: 2975.30044884
Dernière mise à jour : Samedi, le 28 novembre 2015