我正在使用 Google Maps API v2。我在地图上添加标记,然后缩放以适应这些标记。如果地图可见我这样做很好。但如果不是 - 例如,如果我有一个标签条,并且在页面加载时未选择地图的标签 - 那么当我显示地图时,缩放级别和中心是错误的。
这是一个简单的测试用例(使用 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()
,它就会全部消失。
有没有办法让 Google Maps API 在不可见的 div 上正常工作?