ol之地图定位

1.通过extent定位

let extent = vectorSource.getExtent()
this.view.fit(extent)

2.通过点、zoom定位

this.view.setZoom(_zoomLevel);
this.view.setCenter(ol.extent.getCenter(feature.getGeometry().getExtent()));

3.定位到多个点

可通过一下方法获取到多个点的extent,然后使用fit定位。

ol/extent.boundingExtent(coordinates)

例:

let coordinates = [[120.61700857758387,31.26619926018776],[120.6084950447106,31.26619926018776],[120.61700857758387,31.26619926018776]] 
this.view.fit(ol.extent.boundingExtent(coordinates))

注:

当需要定位到点是可以写缓冲:

let extent = vectorSource.getExtent()
this.view.fit(ol.extent.buffer(extent, 10000))

但是缓冲的值为固定值,适配性较差。可定位后将zoom级别减少一级:

this.view.setZoom(this.view.getZoom() - 1)

 如果需要定位到多个点,可将多个点放置在一个图层内,获取该图层的extent。然后使用setCenter完成定位。

 

 

钻研不易,转载请注明出处。。。。。。

 

相关文章:

  • 2021-12-13
  • 2021-08-01
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2022-01-08
猜你喜欢
  • 2022-02-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-23
  • 2021-06-15
  • 2022-02-03
相关资源
相似解决方案