Google MapsAPIv2を使用しています。マップにマーカーを追加してから、それらのマーカーに合わせてズームします。マップが表示されている場合、これは正常に機能します。ただし、そうでない場合(たとえば、タブストリップがあり、ページの読み込み時にマップのタブが選択されていない場合)、マップを表示すると、ズームレベルと中央が間違っています。
これが簡単なテストケースです(jQueryを使用):
<script type="text/javascript">
var scale = Math.random() * 20;
$(document).ready(function() {
var $container = $('#container');
// $container.hide();
var map = new GMap2($('#map')[0]);
$container.show();
var markerBounds = new GLatLngBounds();
for (var i = 0; i < 10; i++) {
var randomPoint = new GLatLng(38.935394 + (Math.random() - 0.5) * scale, -77.061382 + (Math.random() - 0.5) * scale);
map.addOverlay(new GMarker(randomPoint));
markerBounds.extend(randomPoint);
}
map.setCenter(markerBounds.getCenter(), map.getBoundsZoomLevel(markerBounds));
});
</script>
<div id="container">
<div id="map" style="margin: 100px; width: 450px; height: 300px;"></div>
</div>
これはそのままで問題なく動作しますが、コメントを外す$container.hide()
とすべてが無効になります。
表示されていないdivでGoogleMapsAPIを正しく機能させる方法はありますか?