境界によって決定されるズームから、マップを最初に -1 ズームアウトしたいと思います。次のようにすると、ズームイン/アウトするだけですが、ズームレベルを「少し大きく」設定したいです。
map.fitBounds(bounds);
よく知られている理由により、後で map.setZoom を使用できません。
これを行う簡単な方法はありますか?
境界によって決定されるズームから、マップを最初に -1 ズームアウトしたいと思います。次のようにすると、ズームイン/アウトするだけですが、ズームレベルを「少し大きく」設定したいです。
map.fitBounds(bounds);
よく知られている理由により、後で map.setZoom を使用できません。
これを行う簡単な方法はありますか?
最善の方法は、マップ イベントのイベント リスナーを作成することです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
。
ただし、この方法の問題は、マップがズームアウトする前に、最初の境界セットが一瞬表示されることです。
次の場所でイベントリスナーを使用できますzoom_changed
。
google.maps.event.addListenerOnce(map, 'zoom_changed', function() {
var zoomLevel = map.getZoom();
map.setZoom(zoomLevel-1);
});