1. ホーム
  2. ジャバスクリプト

[解決済み】Google Maps API v3:fitBoundsの後にsetZoomを設定できますか?

2022-04-07 16:52:09

質問

埋め込みGoogleマップ(API v3)上にプロットしたい点のセットがあります。 私は、ズームレベルが低すぎない限り、すべてのポイントを収容する境界を望んでいます(つまり、あまりにもズームアウトしている)。 私のアプローチは次のようなものでした。

var bounds = new google.maps.LatLngBounds();

// extend bounds with each point

gmap.fitBounds(bounds); 
gmap.setZoom( Math.max(6, gmap.getZoom()) );

これはうまくいきません。 最後の行 "gmap.setZoom()" は、fitBounds の後に直接呼ばれても、マップのズームレベルを変更しません。

マップに適用せずに、バウンズのズームレベルを取得する方法はありますか? これを解決するための他のアイデアはありますか?

どのように解決するのですか?

編集 : 以下のMatt Diamondのコメントを参照してください。

了解! これを試してみてください。

map.fitBounds(bounds);
var listener = google.maps.event.addListener(map, "idle", function() { 
  if (map.getZoom() > 16) map.setZoom(16); 
  google.maps.event.removeListener(listener); 
});

必要に応じて変更してください。