我想知道是否有办法获取不是完整图层的边界框,而只是在地图的当前缩放级别中可见的图层部分?边界框仅用于图层的可见部分
所以,我需要获取屏幕上绘制的图层的边界框的屏幕坐标。我找不到实现这个目标的方法。
编辑:
不幸的是,这并没有解决我的问题。这正是我得到最新的一点,在某些情况下它不起作用。由于stackoverflow不允许我上传图像,因为我的名誉,我会尝试描述:想象一下,我有一条路径几乎平行于y轴穿过屏幕,但是在屏幕外部它至少是x轴长。在这种情况下,所提出的解决方案将返回x轴的最小和最大屏幕坐标,其中它需要是穿过屏幕的短间隔。在某种程度上,我需要图层可见部分的边界框。编辑2: 谢谢大家的回答。我试图使用“getFeaturesInExtent”函数,但我得到一个错误:“Uncaught TypeError:undefined不是函数”。我正在使用最新版本为3.4.0的OpenLayers。我想我得到这个错误,因为这个函数没有在这个版本中实现。 我使用的方法如下:
var mapExtent = map.getView().calculateExtent(map.getSize());
var features = result.getSource().getFeaturesInExtent(mapExtent);
为你建议我什么样的解决方案呢? (我试图使用主版本下载ZIP:https://github.com/openlayers/ol3,但在这种情况下地图不起作用。) 再次感谢!
我不确定我是否理解正确,但调用['ol.source.Vector#getFeaturesInExtent'](http://openlayers.org/en/master/apidoc/ol.source.Vector.html#getFeaturesInExtent)地图范围为您提供了所有可见的功能。然后你可以用这些功能来计算真实的程度。 – tsauerwein