我試圖簡單地從一組用戶位置獲取距離。這些位置是在代碼的早些時候從數據庫中調用的。 「places」數組中有3個條目,每個條目都包含一些信息和一個「distance」和「duration」字段,它們都被設置爲0作爲佔位符。我試圖遍歷DistanceMatrix「distance.text」和「duration.text」結果並將它們添加到相應對象的「距離」和「持續時間」字段中,但我無法在回調中使用位置[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);
非常感謝您提供任何幫助!
你有地方數組的樣本? – geocodezip
什麼是「[foundlatlng]」? – geocodezip
foundlatlng是由GPS找到的座標,表示爲google.maps.LatLng。它來自代碼中的較早部分。 –