ในเว็บแอปพลิเคชันของฉันฉันต้องการให้ผู้ใช้กำหนดขนาดของคอนเทนเนอร์แผนที่
ทุกอย่างทำงานได้ดีเมื่อมีการขยายคอนเทนเนอร์เล็กน้อย (เห็นได้ชัดว่านี่เป็นเพราะกระเบื้องที่อยู่ด้านหลังขอบถูกโหลดแล้ว) อย่างไรก็ตามเมื่อคอนเทนเนอร์ถูกขยายอย่างมีนัยสำคัญ (ในตัวอย่างต่อไปนี้จากความกว้าง 300 ถึง 1000px) จะมีพื้นที่ว่างเหลือ
จะทำให้แผนที่วาดใหม่และปรับให้เข้ากับขนาดใหม่ได้อย่างไร?
การโทร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>