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

2

7

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?

Phantasmagoria answered 28/5, 2012 at 9:22 Comment(0)
W
16

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);
    }
}
Whiplash answered 28/5, 2012 at 13:23 Comment(0)
P
0

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);
Pappus answered 12/12, 2014 at 2:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.