diff --git a/src/MapViewDirections.js b/src/MapViewDirections.js index 92f401b..885a99b 100644 --- a/src/MapViewDirections.js +++ b/src/MapViewDirections.js @@ -92,6 +92,7 @@ class MapViewDirections extends Component { precision = 'low', timePrecision = 'none', channel, + preferredRoute } = props; if (!apikey) { @@ -174,7 +175,7 @@ class MapViewDirections extends Component { } return ( - this.fetchRoute(directionsServiceBaseUrl, origin, waypoints, destination, apikey, mode, language, region, precision, timePrecisionString, channel) + this.fetchRoute(directionsServiceBaseUrl, origin, waypoints, destination, apikey, mode, language, region, precision, timePrecisionString, channel, preferredRoute) .then(result => { return result; }) @@ -227,7 +228,7 @@ class MapViewDirections extends Component { }); } - fetchRoute(directionsServiceBaseUrl, origin, waypoints, destination, apikey, mode, language, region, precision, timePrecision, channel) { + fetchRoute(directionsServiceBaseUrl, origin, waypoints, destination, apikey, mode, language, region, precision, timePrecision, channel, preferredRoute) { // Define the URL to call. Only add default parameters to the URL if it's a string. let url = directionsServiceBaseUrl; @@ -239,6 +240,9 @@ class MapViewDirections extends Component { if(channel){ url+=`&channel=${channel}`; } + if (preferredRoute) { + url += `&alternatives=${true}` + } } return fetch(url) @@ -252,7 +256,7 @@ class MapViewDirections extends Component { if (json.routes.length) { - const route = json.routes[0]; + const route = preferredRoute && preferredRoute < json.routes.length ? json.routes[preferredRoute] : json.routes[0]; return Promise.resolve({ distance: route.legs.reduce((carry, curr) => { @@ -354,4 +358,4 @@ MapViewDirections.propTypes = { channel: PropTypes.string, }; -export default MapViewDirections; +export default MapViewDirections; \ No newline at end of file