我四處張望,我看到很多關於如何顯示/隱藏圖層的信息。這很酷,但因爲我可以添加任意屬性geoJSON功能,我希望能夠相應地過濾它們。Leaflet.js:是否可以通過屬性過濾geoJSON功能?
例如,如果我有特徵1,2 & 3具有這些性質
- 小|紅色|甜美
- large |綠色|酸味
- 小|紅色|熱
我該如何過濾它們的大小?或者通過顏色或味道?
我四處張望,我看到很多關於如何顯示/隱藏圖層的信息。這很酷,但因爲我可以添加任意屬性geoJSON功能,我希望能夠相應地過濾它們。Leaflet.js:是否可以通過屬性過濾geoJSON功能?
例如,如果我有特徵1,2 & 3具有這些性質
我該如何過濾它們的大小?或者通過顏色或味道?
http://leafletjs.com/examples/geojson.html
是的,你可以,只需添加一個過濾功能,如:
L.geoJson(someFeatures, {
filter: function(feature, layer) {
return feature.properties.show_on_map;
}
}).addTo(map);
或者,如果你想動態更新,有一個在這個其他等問題有很大答案: Leaflet: Update GeoJson filter?
我在Leaflet.tagFilterButton上添加了通過標籤過濾標記的插件。
如果您將tags
選項添加到您的標記,則可以通過標記/類別對它們進行過濾。例如:
L.geoJson(jsonObject, {
pointToLayer: function(feature, latlng) {
L.marker(latlng, {
tags: ['small', 'red', 'sweet']
});
}
}).addTo(map);
L.control.tagFilterButton({
data: ['small', 'red', 'sweet']
}).addTo(map);
你在做什麼geoJSON功能?創建標記? – kielni
是的,我有日託中心的標記,他們每個都有大約6個屬性。我發現我可以將它們添加到圖層並切換圖層,但這似乎有點多餘。我寧願只顯示/隱藏基於其屬性的標記。那可能嗎? – doub1ejack
你可以發佈你的代碼,顯示你如何創建你的標記?您可以將geoJSON屬性設置爲類,然後使用jQuery按類隱藏/顯示,但很難在沒有看到代碼的情況下更具體。 – kielni