两个地址之间的最短路径

时间:2013-07-23 16:31:26

标签: javascript google-maps directions

使用谷歌地图,您实际上可以获得两个地址之间的不同可能路线,也可以获得每条可能路线的长度。

enter image description here 我现在在google map的网站上工作,我想计算两个不同地址之间的最短路径,就像谷歌地图一样。然后将路径长度作为javascript变量返回。

2 个答案:

答案 0 :(得分:1)

您可以使用以下功能:

google.maps.geometry.spherical.computeDistanceBetween (latLng1, latLng1);

参数是两个LatLng对象 确保包括:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script>

答案 1 :(得分:0)

我发现它,可以使用名为Distance Matrix的谷歌地图api计算它返回包含The recommended path's lengthDuration的json响应。

{
"destination_addresses" : [ "Témara, Maroc" ],
"origin_addresses" : [ "Rabat, Maroc" ],
"rows" : [
  {
     "elements" : [
        {
           "distance" : {
              "text" : "13,6 km",
              "value" : 13620
           },
           "duration" : {
              "text" : "23 minutes",
              "value" : 1358
           },
           "status" : "OK"
        }
     ]
  }
],
"status" : "OK"
}

这应该可以正常工作:

function getDistance()
{
var url="http://maps.googleapis.com/maps/api/distancematrix/json?origins=rabat&destinations=temara&mode=driving&language=fr-FR&sensor=false";
var def = new jQuery.Deferred(); 
$.getJSON(url,function(json)
{
if (json.status=="OK")
{
var distance=json.rows[0].elements[0].distance.text;
}
def.resolve(distance);
});
return def.promise();
}

$.when(getDistance()).then(function(distance){
alert(distance);});

Demo