salut,
soit deux villes dont la position est identifiée par la longitude (long) et la latitude (lat)
étant données deux villes v1(long1, lat1) et v2(long2, lat2), comment je peux trouver la distance (en km) entre ces deux villes ?
salut,
soit deux villes dont la position est identifiée par la longitude (long) et la latitude (lat)
étant données deux villes v1(long1, lat1) et v2(long2, lat2), comment je peux trouver la distance (en km) entre ces deux villes ?
j'aurai tendance à le faire par étapes :
- la latitude d'abord : tu calcules la différence d'angle entre le point de départ et le point d'arrivée, puis tu calcules la longueur de l'arc correspondant à cet angle (on va supposer que la terre est ronde et fait 40 000 km de circonférence)
- la longitude ensuite :pareil que pour la latitude.
te reste plus qu'à faire un pytagore bête et méchant pour obtenir la distance à vol d'oiseau entre les deux
PS : ça ne restera qu'approximatin, selon la finesse de ton périmettre de base, et sachant que la terre n'est pas sphérique mais un patatoïde géant![]()
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
En farfouillant sur le net, je suis tombé là-dessus :
http://mathforum.org/library/drmath/view/54680.html
http://mathforum.org/library/drmath/view/51711.html
il semblerait donc que ma solution soit un poil simpliste![]()
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
C'est cadeau (à vérifier quand meme):
http://fr.wikipedia.org/wiki/Distance_du_grand_cercle
Bonjour,
un p'tit bout de code Delphi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 {!- GEO_DISTPP, GEO_DISTPPN, GEO_DISTPPR ---- these functions provide distance between two Points function GEO_DISTPPR(P1,P2:double):single; function GEO_DISTPPR(P1,P2:double):single; input P1,P2 <double> coordinates of points P1 and P2 are passed as double, but this "double" is built from 2 singles representing latitude and longitude in radians. result <smalint> distance in NM for DISTPP <single> distance in NM for DISTPPN <single> "distance" in radians for DISTPPR } function GEO_DISTPPR(P1,P2:double):single; {!} var XX,YY : extended ; _P1 : geo_llrec absolute P1 ; _P2 : geo_llrec absolute P2 ; begin // P1 and P2 are passed as double, but this "double" is built from 2 singles representing latitude and longitude in radians. if P1=P2 then result:=0 else begin try XX := cos(_P1.lat)*cos(_P2.lat)*cos(_P1.lon-_P2.lon) + sin(_P1.lat)*sin(_P2.lat) ; YY:=arccos(XX) ; if XX>0 then result:=YY else result:=YY+XPI ; if result>XPI then result:=result-XPI ; except showmessage('Internal error in GEO_DistPPR'); end; end; end ; (*GEO_DISTPPR*) {!} function GEO_DISTPPN(P1,P2:double):single ; {!} begin GEO_DISTPPN:=GEO_DISTPPR(P1,P2) * minparrad ; end ;
Et au cas où la fonction arccos à partir de arctan :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function ARCCOS(A:extended) : extended ; begin result:=arctan2(sqrt(1-(A*A)),A); end ;
Partager