Как я могу применить функциональность, чтобы найти расстояние между двумя местами с помощью 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;
}
Другие вопросы по тегам