我有一个功能列表和一个矢量图层,我需要知道,每个功能是否在地图视图的范围内.
我正在使用openlayers v3.9.0,并且在相应的文档中有一个函数containsExtent()
(链接),它接受一个扩展并返回一个布尔值.似乎正是我正在寻找的功能.但是抛出一个错误,说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 } });
这里有什么问题?
如果这是一种更好的方法,那么只需要在一次调用中获取范围内的那些特征而不迭代列表,就会更好.
正确的语法是:
ol.extent.containsExtent(extent, feature.getGeometry().getExtent())
如果仔细观察doc页面,您会发现该方法是静态方法,而不是ol.Extent
对象的一部分.仅供参考,ol.Extent
ol3中没有实际对象.它只是一个包含4个数字的数组.我认为ol.Extent
这只是编译器的参考.
HTH