Mvt Filter
Predicate over an MVT feature's inflated property map. Sealed so the matching set is known up front. Filters are pure data evaluated once per feature off the render thread (in MvtVectorLayer.toRenderables); construct via the companion factory methods or the DSL infix helpers ("kind" eq "motorway").
Supported: literal equality, set membership, numeric comparison, has, boolean combinators. Not supported: expression operators (case, match, arithmetic), geometry-type filters.
Property values arrive as Any? because MVT's wire format types them per value: string → String, bool → Boolean, int64/uint64 → Long, sint64 → Long (zigzagged), float → Float, double → Double, absent → null. Numeric comparisons go through Number.toDouble so int/float/double mix correctly.
Inheritors
Types
True when the feature's geometry type equals expected.
True when properties[key] is in values. The membership test is a Set hash lookup — both the property value and the members are already boxed references, so this allocates nothing; numeric members are compared by their existing identity/equality (unchanged).
True when properties[key].toDouble() ≥ threshold. Non-numeric / null = false.
True when properties[key].toDouble() ≤ threshold. Non-numeric / null = false.
Functions
Evaluate this filter against a feature's inflated property map. geomType surfaces the feature's geometry kind so GeometryTypeEq can compare against it; other filters ignore it.