rAthus icon

[PHP+MySQL] trier par distance (latitude longitude)

rAthus | PRO | 03/02/16 08:04:32 AM UTC | 0 ⭐ | 742 👁️ | Never ⏰ | []
PHP |

640 B

|

None

|

0 👍

/

0 👎

/***********/
/* Données */
/***********/
 
$lat = 45.763140; // latitude
$lng = 4.828063; // longitude
$rayon_en_m = 2000; // rayon maximum de recherche en mètres, false si on ne veut pas de limite
 
/***********/
/* Calculs */
/***********/
 
$latlngMarge = $rayon_en_m*0.009;
$query = 'SELECT *, 3956*2*ASIN(SQRT(POWER(SIN(('.$lat.'-ABS(lat))*PI()/180/2),2)+COS('.$lat.'*PI()/180)*COS(ABS(lat)*PI()/180)*POWER(SIN(('.$lng.'-lng)*PI()/180/2),2)))*1609.34 AS distance_m FROM table WHERE 1'.(($rayon_en_m)?' HAVING distance_m<='.$rayon_en_m:'').' ORDER BY distance_m ASC';
 
// la variable distance_m vaut la distance à vol d'oiseau en mètres

Comments