Bonjour tout le monde,
j' ai la problematique suivante :
j ai 3 coordonnées (latitude longitude) et je dois calculer la distance entre une des coordonnées vis a vis d'un segment formé avec les 2 autres
j'ai mis en place le code suivant qui me retourne une distance ! mais le probleme c'est que je ne sais pas dans quel unité exprimer cette distance (si c'est en mettre, kilometre etc) si le resultat ne correspond a aucun de ces types pouvez vous m'indiquer comment le convertir
Le code :
Merci pour votre aide
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 /* * Calcule la distance du TkPT par rapport au segment des 2pts .osm */ float distancePointSegment(void){ float a,b,A,B,xH,yH; float x1,x2,y1,y2,xM,yM; float distres=0; x1 = atof(coordonnees[1]); y1 = atof(coordonnees[0]); x2 = atof(coordonnees[3]); y2 = atof(coordonnees[2]); xM = atof(lon); yM = atof(lat); if (y2==y1){ a=(y2-y1)/(x2-x1); b=y1-a*x1; A=xM*(x2-x1)-(y2-y1)*(b-yM); B=(x2-x1)+a*(y2-y1); xH=A/B; distres=abs(xH-xM)*sqrt(1+pow((x2-x1)/(y2-y1),2)); }else{ xH=xM; yH=y1; distres=sqrt(pow((xH-xM),2)+pow((yH-yM),2)); } return distres; }
Partager