4

私のコード:

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

        map.setZoom(2);
    }
});

ただし、setZoom(2)は機能しません。それ.setDirectionsは非同期のようです。ルートをトレースした後にズームを設定できませんか?

も試してみました:

google.maps.event.addListener(directionsDisplay, 'directions_changed', function () {
    map.setZoom(2);
});

しかし、地図はズームしません...

4

2 に答える 2

8

DirectionsService はズームを変更しませんが、DirectionsDisplay (AKA DirectionsRenderer) はズームを変更します。

DirectionsRenderer にはオプションpreserveViewportがあり、これを含めて true に設定すると、マップのズーム (および中心) が変更されなくなります。

方向サービスの結果に基づいて中心を設定する場合は、この同様の質問に対する私の回答を参照してください。

ルート案内後のグーグルマップズーム

DirectionsRenderer が設定した中心が必要な場合は、DirectionsResult の境界を使用します。

direction_changed イベントをリッスンして、それが発生したときにズームを設定することもできますが、それが機能するかどうかはわかりません。

zoom_changed イベントを使用したドキュメントの例

于 2012-09-28T13:42:11.573 に答える