Как я могу применить функциональность, чтобы найти расстояние между двумя местами с помощью Google Map API?
Я хочу иметь страницу, на которой после выбора города прилегающая карта будет указывать на этот город. Мне нужно иметь два поля с опцией автозаполнения, где поля будут заполнены местами, наиболее близкими по значимости. Расстояние будет выбрано автоматически после выбора этих мест. Для этого мы хотим реализовать API Google Map.
1 ответ
Решение
Сделайте AJAX-запрос, содержащий две координаты ваших городов, найденные API.
В PHP вы можете рассчитать расстояние между двумя точками без использования API-интерфейса карты Javascript.
Если вы можете получить координаты без использования API, вы можете рассчитать непосредственно в PHP...
Javascript:
$.get( php_script , function( data ) {
alert( "The distance is "+data+" km" );
});
PHP:
unset($params);
$params["point1"]["lat"];
$params["point1"]["lng"];
$params["point2"]["lat"];
$params["point2"]["lng"];
echo orthodromy($params);
function orthodromy($params) {
unset($lat1, $lng1, $lat2, $lng2);
$lat1 = $params["point1"]["lat"];
$lng1 = $params["point1"]["lng"];
$lat2 = $params["point2"]["lat"];
$lng2 = $params["point2"]["lng"];
if (!is_numeric($lat1) || !is_numeric($lng1) || !is_numeric($lat2)
|| !is_numeric($lng2)) return false;
unset($dist);
$dist = acos(
sin( deg2rad($lat1) ) *
sin( deg2rad($lat2) ) +
cos( deg2rad($lat1) ) *
cos( deg2rad($lat2) ) *
cos( deg2rad($lng1-$lng2) )
) * 6371;
if (!is_numeric($dist)) return false; else return $dist;
}