Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function calculateWaterfallDistance(currentPos, waterfalls) {
- // loop through the waterfalls object and add a
- var waterfallsArray = [];
- waterfalls.waterfalls.forEach( function (waterfall)
- {
- waterfallsArray.push(getDistance(currentPos, waterfall.location.geometry.location).then( (distObj) => {return waterfall.travelInfo = distObj;}));
- });
- Promise.all(waterfallsArray).then(() => {
- for (var i = 0; i < waterfalls.waterfalls.length; i++) {
- waterfalls.waterfalls[i].travelInfo = waterfallsArray[0];
- }
- });
- return new Promise(function(resolve, reject) {
- resolve(waterfalls);
- });
- }
- function getDistance(start,stop) {
- var url = buildGoogleMapsUrl(start,stop);
- return axios.get(url)
- .then(function (data) {
- return {distance: data.data.rows[0].elements[0].distance.text, duration: data.data.rows[0].elements[0].duration.text}
- })
- }
- // React part
- makeRequest: function () {
- const data = getWaterfalls()
- getUserPosition()
- .then(function(position) {
- // we have the user's position!
- getWaterfalls().then( (resData) => {
- calculateWaterfallDistance(position.coords , resData).then( (promisedata) =>{
- console.log(promisedata.waterfalls[0].travelInfo.);
- this.setState({
- waterfallData: promisedata.waterfalls,
- isLoading: false,
- userPosition: position.coords
- });
- })
- })
- }.bind(this))
- .catch(function(error) {
- // uhoh, something went wrong
- console.log(error);
- }.bind(this));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement