У своєму веб-додатку я хочу дозволити користувачам встановлювати розмір контейнера для карт.
Все спрацювало нормально, коли контейнер трохи розширили (мабуть, це тому, що плитка, яка знаходилась прямо за кордоном, вже була завантажена). Однак, коли контейнер значно розширений (у наступному прикладі шириною від 300 до 1000 пікселів), залишається порожній простір.
Як зробити так, щоб карта перемальовувалася та адаптувалася до нового розміру?
Дзвінки redraw()
на всіх шарах не допомогли. Не збільшували і зменшували масштаб.
Я перевірив це з описаними результатами в Opera, Chrome і Firefox. В IE8, на диво, проблеми не виникло, і карта автоматично адаптувалася.
Спрощена веб-сторінка для тестування:
<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>