代码之家  ›  专栏  ›  技术社区  ›  char m

如何适应openlayers地图时,地图不是全尺寸?

  •  0
  • char m  · 技术社区  · 5 年前

    我有一个使用 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 });
    }
    

    否则地图工作正常,因为右下角的地图按钮和比例线会适应打开其他分割区域。

    那么应该如何做到这一点,即如何获得真正的地图大小?

    1 回复  |  直到 5 年前
        1
  •  1
  •   pzaenger lio    5 年前

    也许 吧 calculateExtent 很适合:

    大小是将计算结果放入其中的框的像素尺寸 整个地图,就是这样 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() });
    }