在我的Web应用程序中,我希望使用户能够设置地图容器的大小。
稍微扩展容器时,一切工作正常(显然是因为刚好位于边框后面的图块已加载)。但是,当容器显着扩展(在下面的示例中,宽度从300像素扩展到1000像素)时,将留有空白空间。
如何使地图重绘并适应新尺寸?
调用redraw()
所有图层均无济于事。放大和缩小都没有。
我在Opera,Chrome和Firefox中使用上述结果对它进行了测试。令人惊讶的是,在IE8中,该问题并未发生,并且地图自动适应。
简化的测试页面:
<html>
<head>
<style>
#mapbox {
width: 300px;
height: 500px;
border: 1px solid black;
}
</style>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
</head>
<body>
<div id="mapbox"></div>
<input type="button" id="test" value="resize">
<script>
var map = new OpenLayers.Map('mapbox');
map.addLayer(new OpenLayers.Layer.OSM());
map.setCenter(
new OpenLayers.LonLat(1000000, 7000000), 5);
document.getElementById('test').onclick = function() {
document.getElementById('mapbox').style.width = '1000px';
}
</script>
</body>
</html>