In meiner Webanwendung möchte ich Benutzern ermöglichen, die Größe des Kartencontainers festzulegen.
Alles hat gut funktioniert, als der Container leicht erweitert wurde (anscheinend, weil die Fliesen, die sich direkt hinter der Grenze befanden, bereits geladen waren). Wenn der Container jedoch erheblich erweitert wird (im folgenden Beispiel von 300 auf 1000 Pixel Breite), verbleibt ein leerer Bereich.
Wie kann ich die Karte neu zeichnen und an die neue Größe anpassen?
Das Aufrufen redraw()
aller Ebenen hat nicht geholfen. Zoomen und Zoomen nicht.
Ich habe dies mit den beschriebenen Ergebnissen in Opera, Chrome und Firefox getestet. In IE8 trat das Problem überraschenderweise nicht auf und die Karte wurde automatisch angepasst.
Eine vereinfachte Webseite zum Testen:
<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>