我在我的项目中使用OpenLayers,但是我在调​​整大小时遇到​​问题。当我打开更大的-div更大的map时,map不会引起问题,但是当我在小div中打开地图时,map不会自动调整大小。

我已经尝试了几件事来解决这个问题:



 window.onresize = function()
        {
          setTimeout( function() { map.updateSize();}, 200);
        }




$(window).trigger('resize');



  function resize() {
      var div = $('#map');
      div.height(
        Math.max( div.height() + ($(window).height() - $('body').height()), 300 )
      );
      map.updateSize();
    }




我也尝试更新库文件。

http://trac.osgeo.org/openlayers/attachment/ticket/2828/openlayers-2828.patch

最佳答案

尝试使用以下算法:



function reduce() {
var mapDiv = document.getElementById("map");
console.log("Current size: "+mapDiv.style.width+ " / "+mapDiv.style.height);
mapDiv.style.width = mapDiv.clientWidth - 10 + "px";
mapDiv.style.height = mapDiv.clientHeight - 10 + "px";
console.log("New size: "+mapDiv.style.width+ " / "+mapDiv.style.height); 

09-11 14:05