计算 2 个数组中每个位置的 return 距离
Calculate and return distances for each location in 2 arrays
我有 2 个包含位置的数组,我需要计算每个位置之间的距离。我试过了,但它 return 只有一个距离("Lusaka, Zambia" 到 "Kitwe, Zambia")。
var distance = require("google-distance-matrix");
let pickups = [{"address": "Lusaka, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];
exports.handler = (event, context, callback) => {
var dists = pickups.map(function (p, d) {
distance.matrix([p.address], [dropoffs[d].address], function(err, distances) {
console.log(distances);
// return distances;
});
});
};
如果this
数组是这样的:
let pickups = [{"address": "Lusaka, Zambia"},{"address": "Kabwe, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];
我需要找到和 return 之间的距离:
- 赞比亚卢萨卡和赞比亚基特韦
- 赞比亚卢萨卡和赞比亚恩多拉
- 赞比亚卡布韦和赞比亚基特韦
- 赞比亚卡布韦和赞比亚恩多拉
我该如何解决这个问题?
您显然需要在循环中循环。像这样:
var distance = require("google-distance-matrix");
let pickups = [{"address": "Lusaka, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];
exports.handler = (event, context, callback) => {
let allDistances = []
for(let pickup of pickups){
for(let dropoff of dropoffs){
distance.matrix(pickup.address, dropoff.address], function(err, distances) {
allDistances.push({p: pickup.address, d: dropoff.address, d: distances})
});
}
}
return allDistances
};
我有 2 个包含位置的数组,我需要计算每个位置之间的距离。我试过了,但它 return 只有一个距离("Lusaka, Zambia" 到 "Kitwe, Zambia")。
var distance = require("google-distance-matrix");
let pickups = [{"address": "Lusaka, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];
exports.handler = (event, context, callback) => {
var dists = pickups.map(function (p, d) {
distance.matrix([p.address], [dropoffs[d].address], function(err, distances) {
console.log(distances);
// return distances;
});
});
};
如果this
数组是这样的:
let pickups = [{"address": "Lusaka, Zambia"},{"address": "Kabwe, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];
我需要找到和 return 之间的距离:
- 赞比亚卢萨卡和赞比亚基特韦
- 赞比亚卢萨卡和赞比亚恩多拉
- 赞比亚卡布韦和赞比亚基特韦
- 赞比亚卡布韦和赞比亚恩多拉
我该如何解决这个问题?
您显然需要在循环中循环。像这样:
var distance = require("google-distance-matrix");
let pickups = [{"address": "Lusaka, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];
exports.handler = (event, context, callback) => {
let allDistances = []
for(let pickup of pickups){
for(let dropoff of dropoffs){
distance.matrix(pickup.address, dropoff.address], function(err, distances) {
allDistances.push({p: pickup.address, d: dropoff.address, d: distances})
});
}
}
return allDistances
};