2016-04-04 37 views
0

首先,我知道querySourceFeatures可以解决这个问题。但不幸的是,新版本对所有类型都有效,但不符合我使用的符号。所以我仍然在0.14.x版本下编码。获取过滤器后显示在地图上的功能数量(带功能)

也就是说,我用setFilter函数过滤我的地图,我需要回收完成过滤器后显示的功能数量。 我想过把整个世界(-90,-180,90,180)的地图坐标变换成像素,然后将它传递给一个featuresIn函数。

下面拨弄,featuresIn没有返回[编辑:这是由于没有设置interacive : true,现在它这样做,但问题仍然在这里。你有什么想法如何获得我的地图上显示的功能数量?

编辑:请找我的jsfiddle:https://jsfiddle.net/y7hoa0gy/7/

+0

你能否提供你的代码的功能演示?这里没有足够的信息来自信地诊断你的问题。谢谢! –

+0

@LucasWojciechowski添加演示。感谢您的帮助 – So4ne

回答

1

正在从featuresIn没有返回功能,因为您没有设置"interactive": true的“路线”层上,作为我们的官方在documentation规定(但不再文档页面,因为我们已经改变了这个API)。


/*Now I want to know how many features are still displayed after that filter My thought was to get the bbox of the whole map (-180,-90,180,90) and make a featuresIn of that bbox.*/

更根本的是,这种做法是行不通的。 featuresIn只返回当前视口中的要素。它不会返回所有功能。

+0

Outch是我的不好,它不能工作。好吧,我理解当前的视口,但它承认一个Bbox作为参数,所以我认为它可以渲染给定的Bbox中的功能,那么它是什么? 我试过另一种方式跳到地图的中心之前调用featuresIn但过滤的功能有时候渲染得太晚..有没有办法捕捉事件知道什么时候setFilter后呈现功能?抱歉坚持,但我真的需要这个数字:) https://jsfiddle.net/rbe56vz7/1/ – So4ne

+0

好吧我通过并行过滤json来解决我的问题。谢谢 – So4ne