如何通过Google地图API应用功能来查找两个地方之间的距离?

时间:2014-01-16 13:10:05

标签: google-maps google-maps-api-3 google-api-php-client

我希望有一个页面,在选择一个城市之后,相邻的地图将指向该城市。我需要有两个带有autosuggest选项的字段,其中字段将填充最相关的地方。在自动选择这些地方后,将计算距离。我们希望为此实施谷歌地图API。

1 个答案:

答案 0 :(得分:0)

制作一个AJAX请求,其中包含API找到的两个城市坐标。

在PHP中,您可以计算两点之间的距离,而无需使用Javascript map api。

如果您可以在不使用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;
}