Google mapsを使っていて、マップの倍率を操作するsetZoomとgetZoomが使用できないことがありましたので、そのときの対策方法です。
まず、動かなかったコードですが、次のようになります。
map.fitBounds (bounds);
if (map.getZoom() > 10){
map.setZoom(10);
}
fitBoundsを使って、指定した地点を自動的にすべて含むように調整した後、ズームしすぎていたらズームを調整するというものです。
しかし、これではズームの調整が上手くいきません。
これを解消するには次のようにコーディングします。
map.fitBounds (bounds);
var listener = google.maps.event.addListener(map, “idle”, function() {
if (map.getZoom() > 10){
map.setZoom(10);
}
google.maps.event.removeListener(listener);
});
こちらはズームの調整をマップがidleになったときに行うようにしました。
このようにすると上手く動作します。
おそらくfitBoundsは非同期で動作するため、fitBoundsを実行した直後にズームの調整をしようとしても動かないのだと思います。