我试图找到一些提示,我应该搜索这个主题,但我找不到任何东西 - 我花了很多时间来研究这个问题。
我还试图从OpenLayers地图中获取当前显示的视口中的当前坐标,以仅添加当前视口的当前边界框中的这些矢量。
答案 0 :(得分:19)
对于OpenLayers 2:
Map.getExtent()
...将返回一个Bounds,您可以使用它来以多种方式获取纬度/经度坐标:http://dev.openlayers.org/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html#OpenLayers.Bounds
理想情况下,您将向量转换为Geometry对象,并使用Bounds.intersectBounds()检查它们是否与Map.getExtent()一起检查它们是否在当前视口中。
对于OpenLayers 3:
ol.Map.getView().calculateExtent(map.getSize())
...将返回一个坐标数组,表示范围的边界框。
答案 1 :(得分:0)
对于openlayers 5.3。
olmap.getView().calculateExtent(olmap.getSize());
答案 2 :(得分:0)
基于此处的答案,但如果您希望结果为经纬度坐标。
function getBounds() {
const extent = olMap.getView().calculateExtent(olMap.getSize())
return transformExtent(extent, 'EPSG:3857', 'EPSG:4326')
}