I have 2 arrays with locations, I need to calculate the distance between each of the locations. I tried this but it returns only one distance for ("Lusaka, Zambia" to "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;
});
});
};
If this
array was like this:
let pickups = [{"address": "Lusaka, Zambia"},{"address": "Kabwe, Zambia"}];
let dropoffs = [{"address": "Kitwe, Zambia"}, {"address": "Ndola, Zambia"}];
I would need to find and return the distance between:
How do I solve the problem?
You obviously need loop inside a loop. Something like this:
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
};