我试图简单地获取一组位置与用户的距离。这些位置是在代码前面的数据库中调用的。“places”数组中有 3 个条目,每个条目都包含一些信息和一个“距离”和“持续时间”字段,它们都设置为 0 作为占位符。我正在尝试遍历 DistanceMatrix "distance.text" 和 "duration.text" 结果并将它们添加到相应对象的 "distance" 和 "duration" 字段中,但我要么不能在回调中使用 places[i]函数,或者,如果我尝试在回调之外添加值,它会丢失返回的值。
var service = new google.maps.DistanceMatrixService();//request distance matrix
var outputdiv = document.getElementById('info');
for (var i=1;i<places.length;i++){
var goto = new google.maps.LatLng(places[i].lat, places[i].lng);
service.getDistanceMatrix(
{
origins: [foundlatlng],
destinations: [goto],
travelMode: google.maps.TravelMode.WALKING,
unitSystem: google.maps.UnitSystem.IMPERIAL,
avoidHighways: false,
avoidTolls: false,
}, callback);//end service.getdistancematrix()
function callback(response, status) {
var distancefield = distancefield;
if (status == google.maps.DistanceMatrixStatus.OK) {
var origins = response.originAddresses;
var destinations = response.destinationAddresses;
var results = response.rows[0].elements;
for (var r = 0; r < results.length; r++) {
var element = results[r];
var distancetext = element.distance.text;
var durationtext = element.duration.text;
var to = destinations[r];
}//end for r
}//end if status=ok
}//end callback
};//end for i
console.log(places);
foundlatlng
是 GPS 找到的坐标,表示为 google.maps.LatLng。它来自代码的前面部分。