Как рассчитать расстояние от широты / долготы в php?

Я пытаюсь сделать записи в базе данных, в которых хранятся широта и долгота. Я хочу рассчитать расстояние между пользователями lat / long и записями lat / long (в БД). После этого я хочу повторить те, которые находятся на расстоянии менее 500 метров. Пока я могу сделать это с помощью foreach .

<?php
mysql_connect("localhost", "beepbee_kunwarh", "kunwar") or die('MySQL Error.');
mysql_select_db("beepbee_demotest") or die('MySQL Error.');

$Lat = $_REQUEST['Lat'];
$long = $_REQUEST['long'];

$query = mysql_query("SELECT a.*, 3956 * 2 * ASIN(SQRT( POWER(SIN(($Lat - Lat) * pi()/180 / 2), 2) + COS($Lat * pi()/180) * COS(Lat * pi()/180) *POWER(SIN(($long - long) * pi()/180 / 2), 2) )) as distance FROM userResponse GROUP BY beepid HAVING distance <= 500 ORDER by distance ASC;");
$data = array();
while ($row = mysql_fetch_array($query)) {
    $data[] = $row;
}
echo json_encode($data);
?>
10
задан SeanWM 24 April 2013 в 19:12
поделиться