Web uygulamamda, kullanıcıların harita konteynerinin boyutunu ayarlamasını sağlamak istiyorum.
Konteyner hafifçe genişlediğinde her şey yolunda gitti (görünüşe göre bunun nedeni sınırın hemen arkasındaki taşların zaten yüklü olmasıydı). Bununla birlikte, kap önemli ölçüde genişletildiğinde (aşağıdaki örnekte, 300 ila 1000 piksel genişliğinde), boşluk kalmıştır.
Harita yeniden çizilir ve yeni boyuta uyarlanır?
redraw()
Tüm katmanları aramak yardımcı olmadı. Yakınlaştırma ve uzaklaştırma da.
Bunu Opera, Chrome ve Firefox'ta açıklanan sonuçlarla test ettim. IE8'de, şaşırtıcı bir şekilde, sorun oluşmadı ve harita otomatik olarak uyarlandı.
Test için basitleştirilmiş bir web sayfası:
<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>