Skip to content

Instantly share code, notes, and snippets.

@fhferreira
Created November 15, 2018 21:43
Show Gist options
  • Save fhferreira/63bba886b3c006dd352a3d04370fa92b to your computer and use it in GitHub Desktop.
Save fhferreira/63bba886b3c006dd352a3d04370fa92b to your computer and use it in GitHub Desktop.
google direction
var maps = require("@google/maps");
var client = maps.createClient({
key: "AIzaSyCSA6hgjkJhkvwO7OP9dG230uEP0ryFXns"
});
function generateDateTime(hour, minutes) {
var d = new Date();
d.setHours(hour,minutes,0,0);
d.setDate(d.getDate() + 1);
return d;
}
var departureOptions = [
generateDateTime(6, 0),
generateDateTime(6, 15),
generateDateTime(6, 30),
generateDateTime(6, 45),
generateDateTime(7, 0),
generateDateTime(7, 15),
generateDateTime(7, 30),
generateDateTime(7, 45),
generateDateTime(8, 0),
generateDateTime(8, 15),
generateDateTime(8, 30),
generateDateTime(8, 45),
generateDateTime(9, 0),
generateDateTime(9, 15),
generateDateTime(9, 30),
generateDateTime(9, 45)
]
var allOptions = [];
var promises = departureOptions.map(dateTime => {
return new Promise((resolve, reject) => {
client.directions({
origin: "102 Gauen Ave, Collinsville, IL 62234",
destination: "1227 Washington Ave, St. Louis, MO 63103",
departure_time: dateTime,
traffic_model: 'optimistic'
}, (a, response) => {
var routes = response.json.routes.map(r => {
return {
summary: r.summary,
distance: r.legs[0].distance.value,
duration: r.legs[0].duration.value,
}
});
console.log(routes);
resolve(routes);
});
});
})
Promise.all(promises).then(routesPerDateTime => {
var allRoutes = [].concat.apply([], routesPerDateTime);
console.log(JSON.stringify(allRoutes));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment