【发布时间】:2015-11-18 16:57:14
【问题描述】:
这里我正在计算两个经纬度点之间的距离和时间。我几乎得到了答案,但我无法将值返回给函数。
请帮助我。提前致谢
我的编码是:
function initMap() {
console.log(getDistanceandTime(srcRouteAddress.lat,srcRouteAddress.lng,destRouteAddress.lat,destRouteAddress.lng));
function getDistanceandTime(lat1,lon1,lat2,lon2){
var origin = {lat: parseFloat(lat1), lng: parseFloat(lon1)};
var destination = {lat: parseFloat(lat2), lng: parseFloat(lon2)};
var service = new google.maps.DistanceMatrixService;
//var test = [];
service.getDistanceMatrix({
origins: [origin],
destinations: [destination],
travelMode: google.maps.TravelMode.DRIVING
}, function (response, status) {
if (status == google.maps.DistanceMatrixStatus.OK) {
var test_values = [];
var originList = response.originAddresses;
for (var i = 0; i < originList.length; i++) {
var results = response.rows[i].elements;
for (var j = 0; j < results.length; j++) {
var test = results[j].distance.text + ' in ' + results[j].duration.text;
test_values.push(test);
console.log(test_values);
}
}
return test_values;
}
return test_values;
});
}
}
【问题讨论】:
-
使
var test_values = [];成为全局的,当你调用它时该函数可以访问它。 -
距离矩阵是异步的,你必须使用回调中的数据何时/何地可用。你想用
test_values数组做什么? -
@geocodezip 你说得很好。我已根据您的观点更新了答案
-
检查我更新的答案和一个类似问题的链接。 ajax调用时不能返回值。
标签: javascript php google-maps