ol之地图定位

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完成定位。

 

 

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

 

posted @ 2020-04-22 19:07  莫小龙  阅读(1008)  评论(0编辑  收藏  举报