No meu aplicativo da web, desejo permitir que os usuários definam o tamanho do contêiner de mapa.
Tudo funcionou bem quando o contêiner foi expandido levemente (aparentemente, porque os ladrilhos que estavam logo atrás da borda já estavam carregados). No entanto, quando o contêiner é expandido significativamente (no exemplo a seguir, de 300 a 1000 px de largura), resta espaço em branco.
Como fazer o mapa redesenhar e se adaptar ao novo tamanho?
Chamar redraw()
todas as camadas não ajudou. Nem zoom in e out.
Eu testei isso com os resultados descritos no Opera, Chrome e Firefox. Surpreendentemente, no IE8, o problema não ocorreu e o mapa foi adaptado automaticamente.
Uma página da web simplificada para teste:
<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>