This library is forked from mapbox/feature-filter, but adapted to work with GeoJSON features rather than features from a vector tile. This library implements the semantics specified by the Mapbox GL JS spec.
Given a filter expressed as nested arrays, return a new function that evaluates whether a given feature (with a .properties or .tags property) passes its test.
||Array||mapbox gl filter|
Function, filter-evaluating function
var ff = ;// will match a feature with class of street_limited,// AND an admin_level less than or equal to 3,// that's NOT a polygon.var filter ="all""==" "class" "street_limited""<=" "admin_level" 3"!=" "$type" "Polygon"// will match a feature that has a class of// wetland OR wetland_noveg.// ["in", "class", "wetland", "wetland_noveg"]// testFilter will be a function that returns a booleanvar testFilter = ;// Layer feature that you're testing. Must have type// and properties keys.var feature =type: 'Feature'geometry:type: 'Polygon'coordinates: ...properties:class: "street_limited"admin_level: 1;// will return a boolean based on whether the feature matched the filterreturn ;