如何在画布调整大小上重绘/刷新地图?


Answers:


13

添加map.updateSize();$("#btn-full-screen").click...

演示

updateSize文档

任何可动态更改map div大小的外部代码都应调用此函数(因为mozilla不会让我们捕获元素的“ onresize”)


5

OpenLayers.Map.updateSize当最大化地图时,可以使用方法重绘基础图层。

因此,添加如下功能:

var fullScreen = function () {
    map.baseLayer().redraw();
}

您只需要向地图添加其他选项:

var map = new OpenLayers.Map({
    div: "map",
    center: new OpenLayers.LonLat(0, 0),
    updateSize: fullScreen,
    minResolution: "auto",
    minExtent: new OpenLayers.Bounds(-1, -1, 1, 1),
    maxResolution: "auto",
    maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
    projection: Mercator,
    displayProjection: Geographic
});

祝好运!


它没有将地图设置为全屏显示,请您更新小提琴。
bios 2012年

谢谢。使用放大时,瓷砖变白了transitionEffect: 'resize'map.baseLayer().redraw();固定它。
Nicolas Boisteault '16

0

每当需要重绘地图时(例如在窗口调整大小或选项卡更改或全屏或在任何其他事件上)根据需要编写以下代码。

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

这将自动在updateSize()内部触发该功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.