Dans mon application Web, je souhaite permettre aux utilisateurs de définir la taille du conteneur de carte.
Tout a bien fonctionné lorsque le conteneur a été légèrement agrandi (apparemment, c'est parce que les tuiles qui étaient juste derrière la frontière étaient déjà chargées). Cependant, lorsque le conteneur est considérablement développé (dans l'exemple suivant, de 300 à 1 000 pixels de largeur), il reste de l'espace vide.
Comment redessiner la carte et l'adapter à la nouvelle taille?
Appeler redraw()
sur toutes les couches n'a pas aidé. Ni zoom avant ni arrière.
J'ai testé cela avec les résultats décrits dans Opera, Chrome et Firefox. Dans IE8, étonnamment, le problème ne s'est pas produit et la carte s'est automatiquement adaptée.
Une page Web simplifiée pour les tests:
<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>