使用谷歌地圖,你實際上可以得到兩個地址之間不同的可能路線,也可以得到每條可能路線的長度。兩個地址之間的最短路徑
我現在正在與
google map
在一個網站上工作,我想計算兩個不同地址之間的最短路徑谷歌地圖。然後獲取路徑長度作爲JavaScript變量。
使用谷歌地圖,你實際上可以得到兩個地址之間不同的可能路線,也可以得到每條可能路線的長度。兩個地址之間的最短路徑
我現在正在與
google map
在一個網站上工作,我想計算兩個不同地址之間的最短路徑谷歌地圖。然後獲取路徑長度作爲JavaScript變量。
我發現它,它可以使用谷歌稱爲Distance Matrix
它返回一個包含The recommended path's length
和Duration
JSON響應地圖API來計算。
{
"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);});
您可以使用這些功能:
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>
它會返回什麼? –
直線最短路徑 –
但是,這會計算兩個LatLng對象之間的測地線的長度,無論是否存在路由。 –
你可以用谷歌地圖API V3爲DirectionsService備用路由。每條路線包括其距離和持續時間。 [開發人員指南](https://developers.google.com/maps/documentation/javascript/directions) - [DirectionsService參考](https://developers.google.com/maps/documentation/javascript/reference#DirectionsRequest),請參閱provideRouteAlternatives - 是否應提供路由替代方案。可選的。 – geocodezip