अपने वेब एप्लिकेशन में, मैं उपयोगकर्ताओं को मैप कंटेनर का आकार सेट करने में सक्षम करना चाहता हूं।
कंटेनर के थोड़ा विस्तारित होने पर सबकुछ ठीक हो गया (जाहिरा तौर पर यह इसलिए है क्योंकि सीमा के ठीक पीछे की टाइलें पहले से ही भरी हुई थीं)। हालांकि, जब कंटेनर में काफी विस्तार किया जाता है (निम्न उदाहरण में, चौड़ाई में 300 से 1000 पीएक्स तक), तो खाली जगह बची है।
नक्शे को कैसे फिर से तैयार किया जाए और नए आकार के अनुकूल बनाया जाए?
redraw()
सभी परतों पर कॉल करने से मदद नहीं मिली। न ही अंदर-बाहर झूम रहे थे।
मैंने ओपेरा, क्रोम और फ़ायरफ़ॉक्स में वर्णित परिणामों के साथ इसका परीक्षण किया। 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>