Leaflet.js:是否可以按属性过滤geoJSON功能?

时间:2014-02-23 21:11:55

标签: filter leaflet

我环顾四周,看到很多关于如何显示/隐藏图层的信息。这很酷,但由于我可以为geoJSON功能添加任意属性,我希望能够相应地过滤它们。

例如,如果我有1,2和2的功能。 3具有这些属性

  1. 小|红色|甜
  2. 大|绿色|酸
  3. 小|红色|热
  4. 我如何根据尺寸过滤它们?还是颜色或味道?

2 个答案:

答案 0 :(得分:4)

http://leafletjs.com/examples/geojson.html

是的,你可以,只需添加一个过滤功能,如:

L.geoJson(someFeatures, {
    filter: function(feature, layer) {
        return feature.properties.show_on_map;
    }
}).addTo(map);

或者,如果您想要动态更新,那么在其他SO问题中有一个很好的答案: Leaflet: Update GeoJson filter?

答案 1 :(得分:0)

我已在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 );