在directionsService.route之后更改缩放?

mar*_*zzz 4 google-maps

我的代码:

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

        map.setZoom(2);
    }
});
Run Code Online (Sandbox Code Playgroud)

但是setZoom(2)将不起作用.似乎.setDirections是异步.跟踪路线后无法设置缩放?

也试过:

google.maps.event.addListener(directionsDisplay, 'directions_changed', function () {
    map.setZoom(2);
});
Run Code Online (Sandbox Code Playgroud)

但地图不会缩放......

geo*_*zip 8

DirectionsService不会更改ZoomDisplay(AKA DirectionsRenderer)所做的缩放.

DirectionsRenderer有一个选项preserveViewport,如果包含并设置为true,将阻止它更改地图的缩放(和中心).

如果您想根据directionsService的结果设置中心,请参阅我对此类似问题的回答:

谷歌地图缩放方向后

如果您想要DirectionsRenderer设置的中心,请使用DirectionsResult的边界.

您还可以侦听directions_changed事件,并在触发时设置缩放,不确定它是否有效.