当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Openlayer3-检查功能是否在范围的范围内》经验,为你挑选了1个好方法。

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

我正在使用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
  }
});

这里有什么问题?

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



1> Alexandre Du..:

正确的语法是:

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

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

HTH

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有