在這裏我有一個代碼,將顯示用戶點擊標記時谷歌地方的API數據。函數獲取兩個位置之間的距離和時間
我也有兩個點,位置座標(緯度,經度),所以Point1[], Point2[]
我如何計算在這個地方,在顯示HTML之間公里,實時道路距離。 谷歌地圖有一個功能,將計算這個距離和時間?
CODE:
google.maps.event.addListener(marker,'click',function(){
service.getDetails(request, function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
//class m_tooltip
var contentStr = '<div><h5>'+place.name+'</h5><p>'+place.formatted_address+'</p>';
if (!!place.photos) contentStr += '<img src='+place.photos[0].getUrl({ 'maxWidth': 500, 'maxHeight': 500 })+'></img>';
if (!!place.formatted_phone_number) contentStr += '<br>'+place.formatted_phone_number;
if (!!place.website) contentStr += '<br><a target="_blank" href="'+place.website+'">'+place.website+'</a>';
var Point1 = [34,666, 56,888];
var Point2 = [77.876, 45,555];
contentStr += '<p>Distance in km:' + functionThatReturnRoadDistance(Point1, Point2) + '</p>';
$(contentStr).dialog({
modal:true
});
} else {
var contentStr = "<h5>No Result, status="+status+"</h5>";
$(contentStr).dialog();
}
});
所以有一些谷歌地圖或相似的功能,這將返回我的地方卻道/路由距離之間米或公里的不是簡單的距離的距離???
更新:我TRU這樣:
function calculateDistances(start,stop) {
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [start],
destinations: [stop],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, callback);
}
function callback(response, status) {
if (status != google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
for (var i = 0; i < origins.length; i++) {
var results = response.rows[i].elements;
for (var j = 0; j < results.length; j++) {
var xxx= "";
xxx += origins[i] + ' to ' + destinations[j]
+ ': ' + results[j].distance.text + ' in '
+ results[j].duration.text + '<br>';
return xxx;
}
}
}
}
,並把它與撥打:
var start = document.getElementById("from").value;
var stop = place.formatted_address;
contentStr += '<p>'+ calculateDistances(start,stop); + '</p>';
$(contentStr).dialog({
modal:true
});
,但不工作,DistanceMatrix
你嘗試過什麼?這是一個很好的起點https://developers.google.com/maps/documentation/distancematrix/ – slash197
我嘗試,但這是asinhron函數,所以我不能爲每個彈出窗口(對話框)調用它 – drTesla
我更新我的問題與我試着做 – drTesla