我有一个使用 https://www.npmjs.com/package/angular-split . 1分割区域有开放图层地图。如果只有地图分割区域可见,请使用以下方法:
private zoomToExtent(extent: IExtent, view: ol.View) { const mapSize = this.map.getSize(); this.map.getView().fit(extent, { size: mapSize }); }
否则地图工作正常,因为右下角的地图按钮和比例线会适应打开其他分割区域。
那么应该如何做到这一点,即如何获得真正的地图大小?
也许 吧 calculateExtent 很适合:
大小是将计算结果放入其中的框的像素尺寸 整个地图,就是这样 map.getSize() .
map.getSize()
const currentExtent = this.map.getView().calculateExtent(this.map.getSize());
编辑: @Mike的观点很好:
updateSize 可能更好:
强制重新计算地图视口大小。这应该叫做
private zoomToExtent(extent: IExtent, view: ol.View) { // Parameter view unnecessary (?) this.map.updateSize(); this.map.getView().fit(extent, { size: this.map.getSize() }); }