Is there a way to override the Google Directions service zoom values?

6.8k views Asked by At

I'm using the code below to get the route between two points:

directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
    }
}

It's working fine, but I don't want to change my map position and zoom level when drawing route. So when I call the code above with different latitude and longitude values, I would like my map position and zoom level to be maintained. Any idea?

2

There are 2 answers

0
Sean Mickey On BEST ANSWER

When you create the DirectionsRendererapi-doc, you can pass a DirectionsRendererOptionsapi-doc object to the constructor function or you can call the DirectionsRenderer.setOptions method if you would like to change the options at some time after creation.

You can use the preserveViewport property of the DirectionsRendererOptions object to control how the renderer will interact with the map. Setting preserveViewport to truewill leave the map display unchanged:

directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setOptions({ preserveViewport: true });
        directionsDisplay.setDirections(response);
    }
}
0
Emir Herrera On

This makes the error stop showing, but still the route doesn't draw well, looks like there is some data missing:

directionsDisplay.setOptions({ preserveViewport: true });
directionsDisplay.setDirections(response);