我四处张望,我看到很多关于如何显示/隐藏图层的信息。这很酷,但因为我可以添加任意属性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