Я хочу использовать эту формулу с php. У меня есть база данных с сохраненными значениями latitute и долготы.
Я хочу найти с определенным значением широты и долготы во входных данных все расстояния (в км) от этой точки с каждой точкой в базе данных. Для этого я использовал формулу на googlemaps api:
( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) )
Конечно, используя php, я заменил радианы на deg2rad
. Значения 37, -122 - это мои значения ввода и lat, lng - мои значения в базе данных.
Ниже мой код. Проблема в том, что что-то не так, но я не понимаю, что. Значение расстояния, конечно, неверно.
//values of latitude and longitute in input (Rome - eur, IT)
$center_lat = "41.8350";
$center_lng = "12.470";
//connection to database. it works
(..)
//to take each value in the database:
$query = "SELECT * FROM Dati";
$result = mysql_query($query);
while ($row = @mysql_fetch_assoc($result)){
$lat=$row['Lat']);
$lng=$row['Lng']);
$distance =( 6371 * acos((cos(deg2rad($center_lat)) ) * (cos(deg2rad($lat))) * (cos(deg2rad($lng) - deg2rad($center_lng)) )+ ((sin(deg2rad($center_lat))) * (sin(deg2rad($lat))))) );
}
Для значений, например: $ lat = 41.9133741000 $ lng = 12.5203944000
У меня есть выход расстояния = "4826.9341106926"