Dalam aplikasi web saya, saya ingin memungkinkan pengguna untuk mengatur ukuran wadah peta.
Semuanya bekerja dengan baik ketika wadah sedikit diperluas (tampaknya ini karena ubin yang berada tepat di belakang perbatasan sudah dimuat). Namun, ketika wadah diperluas secara signifikan (dalam contoh berikut, dari 300 hingga 1000px lebar), ada ruang kosong yang tersisa.
Bagaimana cara membuat peta ulang dan beradaptasi dengan ukuran baru?
Memanggil redraw()
semua lapisan tidak membantu. Zooming tidak masuk dan keluar.
Saya menguji ini dengan hasil yang dijelaskan di Opera, Chrome dan Firefox. Di IE8, secara mengejutkan, masalah tidak terjadi dan peta secara otomatis disesuaikan.
Laman web yang disederhanakan untuk pengujian:
<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>