Openlayer 3 - 检查功能是否在范围的范围内

时间:2015-12-10 13:09:35

标签: openlayers-3

我有一个功能列表和一个矢量图层,我需要知道每个特征是否在地图视图的范围内。

我使用openlayers v3.9.0并在相应的文档中有一个函数containsExtent()link),它接受一个范围并返回一个布尔值。似乎正是我正在寻找的功能。但是抛出一个错误,说containsExtent不是一个函数。

Uncaught TypeError: extent.containsExtent is not a function

代码段:

// someVectorSource is of type ol.source.Vector
// allMyFeatures is an array of features of type ol.Feature

var extent = someVectorSource.getExtent();
_.each(allMyFeatures, function(feature) {
  if (extent.containsExtent(feature.getGeometry().getExtent())) {
    // do something
  }
});

这里有什么问题?

如果这是一种更好的方法,只需要在一次调用中获取范围内的那些功能而不迭代列表,就会更好。

1 个答案:

答案 0 :(得分:10)

正确的语法是:

ol.extent.containsExtent(extent, feature.getGeometry().getExtent())

如果仔细观察doc page,您会发现该方法是静态方法,而不是ol.Extent对象的一部分。仅供参考,ol3中没有实际的ol.Extent对象。它只是一个包含4个数字的数组。我认为ol.Extent只是编译器的参考。

HTH