如何解决使用Promises通过Google Map Distance Matrix API返回值
该计划的目标是使用latlng值数组,并使用Google Maps Distance Matrix API计算总行驶时间。我面临的问题是它只能将点A的答案打印到点B。我希望能够将这些值以数组形式返回并求和以计算总旅行时间。
代码如下:
function privateCalculator(sets){
let len = sets.length;
let time = 0;
var s = [];
let result = 0;
let lng,lat
console.log('the set we got: ')
console.log(sets)
for (let k = 0; k < len; k++){
let aSet = sets[k];
console.log('set: ' + aSet);
let pointA = aSet.a;
let pointB = aSet.b;
let o = [{lat: pointA[k],lng: pointA[1]}];
let dt = [{lat: pointB[k],lng: pointB[1]}];
let origin1 = o ;
let destinationA = dt;
initMap(origin1,destinationA).done(function (response){
let origins = response.originAddresses;
// for (let i = 0; i < origins.length; i++) {
// let results = response.rows[i].elements;
// for (var j = 0; j < results.length; j++) {
// //console.log(results[j].distance.text);
// //document.getElementById('result').innerHTML += results[j].duration.value;
// time = results[j].duration.value;
// summaryPanel.innerHTML +=time;
// console.log(time)
// }
// }
console.log('response and value: ')
console.log('::: '+ JSON.stringify(response.rows))
console.log('looking at set: '+ k)
let results = response.rows[0].elements;
time = results[0].duration.value;
summaryPanel.innerHTML+= time;
s.push(time)
console.log(time);
}).fail(function (status){
document.getElementById('result').innerHTML = 'An error occured. Status: ' + status;
})//use of initMap
}
}
这是initmap函数:
function privateCalculator(sets){
let len = sets.length;
let time = 0;
var s = [];
let result = 0;
let lng,destinationA).done(function (response){
let origins = response.originAddresses;
// for (let i = 0; i < origins.length; i++) {
// let results = response.rows[i].elements;
// for (var j = 0; j < results.length; j++) {
// //console.log(results[j].distance.text);
// //document.getElementById('result').innerHTML += results[j].duration.value;
// time = results[j].duration.value;
// summaryPanel.innerHTML +=time;
// console.log(time)
// }
// }
console.log('response and value: ')
console.log('::: '+ JSON.stringify(response.rows))
console.log('looking at set: '+ k)
let results = response.rows[0].elements;
time = results[0].duration.value;
summaryPanel.innerHTML+= time;
s.push(time)
console.log(time);
}).fail(function (status){
document.getElementById('result').innerHTML = 'An error occured. Status: ' + status;
})//use of initMap
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。