0

境界によって決定されるズームから、マップを最初に -1 ズームアウトしたいと思います。次のようにすると、ズームイン/アウトするだけですが、ズームレベルを「少し大きく」設定したいです。

map.fitBounds(bounds);

よく知られている理由により、後で map.setZoom を使用できません。

これを行う簡単な方法はありますか?

4

2 に答える 2

1

最善の方法は、マップ イベントのイベント リスナーを作成することですidle。処理が完了fitboundsすると、idle イベントがトリガーされます。

境界に合わせるたびにそれを行う必要がある場合は、カスタムの fitbounds メソッドを作成します

var fitBounds = function(map, bounds) {
   google.maps.event.addListenerOnce(map, 'idle', function() {
       this.setZoom(this.getZoom() - 1);
   });
   map.fitBounds(bounds);
}

addListenerOnce通常の の代わりに メソッドを使用していることに注意してくださいaddListener

ただし、この方法の問題は、マップがズームアウトする前に、最初の境界セットが一瞬表示されることです。

于 2013-01-10T14:18:04.030 に答える
0

次の場所でイベントリスナーを使用できますzoom_changed

google.maps.event.addListenerOnce(map, 'zoom_changed', function() {
    var zoomLevel = map.getZoom();

    map.setZoom(zoomLevel-1);
});
于 2013-01-10T13:53:07.467 に答える