Leaflet.js:能否按属性筛选geoJSON要素?

7
我看到许多有关如何显示/隐藏图层的信息,这很酷,但由于我可以向 GeoJSON 功能添加任意属性,因此我希望能够相应地进行过滤。
例如,如果我有具有以下属性的功能 1、2 和 3:
  1. 小|红色|甜
  2. 大|绿色|酸
  3. 小|红色|辣
我该如何按大小、颜色或风味对它们进行过滤?

你正在处理geoJSON特征吗?创建标记? - kielni
是的,我有托儿所中心的标记,每个中心大约有6个属性。我看到可以将它们添加到图层并切换图层,但那似乎有点多余。我更愿意根据它们的属性显示/隐藏标记。这可能吗? - doub1ejack
你能发一下代码吗,展示一下你是如何创建你的标记的吗?你可以将geoJSON属性设置为类,然后使用jQuery按类隐藏/显示,但是如果没有看到你的代码,很难给出更具体的建议。 - kielni
2个回答

7

1
我已经添加了一个插件,用于按标签过滤标记。链接为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 );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接