2016-04-04 32 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