我有一张包含传单地图的 <div>
。在某些事件的高度 <div>
将被改变。我想为地图调整到其周围的 <div>
的新尺寸,使旧的中心是在调整大小更小或更大的地图的中心。我尝试使用 invalidateSize()
函数,但它似乎根本不工作。在 map-container-resize
事件之后,我如何调整地图的大小并将其居中?
$mapContainer.on('map-container-resize', function () {
map.invalidateSize(); // doesn't seem to do anything
});
编辑以提供更多上下文:
映射容器最初的样式为
#map-container {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
transition: height 0.5s ease-in-out;
}
当用户单击某个按钮后,另一个面板显示在页面底部,地图容器的高度将降低到100% 以下(比如说80%)。
点击这个按钮,地图-容器-调整大小事件就会被触发,这样我就可以让地图调整大小并以它的旧中心为中心(即在调整大小发生之前)。地图本身也应该调整到其初始高度的80% 。
invalidateSize
的 API 文档似乎就是我想要的:
”检查映射容器的大小是否发生变化,如果发生变化,则更新映射 [...]"
但是,在调用 valididateSize 之前和之后查看 getSize
函数的输出,没有什么不同,映射仍然保持原来的大小。