Bonjour
Je recherche une méthode de calcul de la distance entre deux point enregistrés en base de donnée (colonnes de type POINT)
Je connais la méthode a partir des latitudes longitudes:
Je suppose que vu que ce sont des données géo ça devrai être plus simple.
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 CREATE FUNCTION `Distance`(lat1 DOUBLE, lng1 DOUBLE, lat2 DOUBLE, lng2 DOUBLE) RETURNS double BEGIN DECLARE rlo1 DOUBLE; DECLARE rla1 DOUBLE; DECLARE rlo2 DOUBLE; DECLARE rla2 DOUBLE; DECLARE dlo DOUBLE; DECLARE dla DOUBLE; DECLARE a DOUBLE; SET rlo1 = RADIANS(lng1); SET rla1 = RADIANS(lat1); SET rlo2 = RADIANS(lng2); SET rla2 = RADIANS(lat2); SET dlo = (rlo2 - rlo1) / 2; SET dla = (rla2 - rla1) / 2; SET a = SIN(dla) * SIN(dla) + COS(rla1) * COS(rla2) * SIN(dlo) * SIN(dlo); RETURN (6378.137 * 2 * ATAN2(SQRT(a), SQRT(1 - a))); END
Quelqu'un connais la méthode?
Merci
Partager