0

映射我從這個鏈接here已經劇本,我想使函數返回的距離,這是我真正的腳本:與在谷歌函數返回的距離如何

var calcRoute = function(origin,destination) { 
    var dist; 
    var directionsDisplay; 
    var directionsService = new google.maps.DirectionsService(); 
    directionsDisplay = new google.maps.DirectionsRenderer(); 
    var request = { 
    origin:origin, 
    destination:destination, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }; 
    directionsService.route(request, function(response, status) { 
    if (status == google.maps.DirectionsStatus.OK) { 
     directionsDisplay.setDirections(response); 
     dist = response.routes[0].legs[0].distance.value/1000; 
    } 
    }); 
    return dist; 
}; 
$scope.resto = calcRoute("-7.048357, 110.418877","-7.048443, 110.441022"); 

有,我把兩個參數功能,我想在函數返回的距離,但

return dist;

腳本不是從

返回值210

dist = response.routes[0].legs[0].distance.value/1000

我使用angularjsResto餐廳在我看來,沒有顯示的距離,誰能幫我請,有一些錯誤的腳本或別的什麼嗎?

回答

1

在執行directionsService.route函數之前,函數calcRoute已經執行並返回dist,這將是未定義的。

您將獲得directionsService.route

您可以另一個參數(回調函數)添加到calcRoute功能的回調函數內的值。現在,一旦directionsService.route得到響應,您可以將值傳遞給這個新的回調函數。

試試這個。

var calcRoute = function(origin,destination,cb) { 
    var dist; 
    var directionsDisplay; 
    var directionsService = new google.maps.DirectionsService(); 
    directionsDisplay = new google.maps.DirectionsRenderer(); 
    var request = { 
    origin:origin, 
    destination:destination, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }; 
    directionsService.route(request, function(response, status) { 
    if (status == google.maps.DirectionsStatus.OK) { 
     directionsDisplay.setDirections(response); 
     cb(null, response.routes[0].legs[0].distance.value/1000); 
    } 
    else { 
     cb('pass error information'); 
    } 
    }); 
}; 
calcRoute("-7.048357, 110.418877","-7.048443, 110.441022", function (err, dist) { 
    if (!err) {   
     $scope.resto = dist; 
    } 
}); 
+0

感謝您的快速響應@ShankarSangoli .. :) 我會嘗試你suggestion..i'm真的與此谷歌地圖stuff..thanks – Sandhi

+0

這是新working..thanks很多@ShankarSangoli .. :))) – Sandhi