【发布时间】:2015-04-07 09:42:51
【问题描述】:
我想知道是否有办法获取不是完整图层的边界框,而只是在地图的当前缩放级别中可见的图层部分?
所以,我需要获取屏幕上绘制的图层边界框的屏幕坐标。我找不到实现这一目标的方法。
编辑:
不幸的是,这并没有解决我的问题。这正是我最新的观点,在某些情况下它不起作用。由于我的声誉,stackoverflow 不允许我上传图片,我将尝试描述: 想象一下,我有一条几乎平行于 y 轴穿过屏幕的路径,但是在屏幕之外它至少是 x 轴长。在这种情况下,建议的解决方案将返回 x 轴的最小和最大屏幕坐标,其中它需要是穿过屏幕的短间隔。在某种程度上,我需要图层可见部分的边界框。
编辑 2: 谢谢大家的答案。我尝试使用“getFeaturesInExtent”函数,但我收到一条错误消息:“Uncaught TypeError: undefined is not a function”。我正在使用最新的 OpenLayers 版本 3.4.0。我想我收到此错误是因为此版本中未实现此功能。 我使用的方式如下:
var mapExtent = map.getView().calculateExtent(map.getSize());
var features = result.getSource().getFeaturesInExtent(mapExtent);
您对我有什么建议? (我尝试使用从:https://github.com/openlayers/ol3 下载 ZIP 的主版本,但在这种情况下地图不起作用。) 再次感谢!
【问题讨论】:
-
我不确定我是否理解正确,但
ol.source.Vector#getFeaturesInExtent与地图范围一起调用会为您提供所有可见的功能。然后你可以用这些特征计算出真实的范围。
标签: openlayers-3