summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2015-05-07 08:35:41 -0700
committerMinh Nguyễn <mxn@1ec5.org>2015-05-07 08:35:41 -0700
commit6292e95f80fa2e0a9a7aa4d4d4e320a207e78d27 (patch)
treec20fc3f88349f294497b70881b26ca3709b34fd5
parentd3d125694d39faef4d123009beee3e6de09adede (diff)
downloadqtlocation-mapboxgl-6292e95f80fa2e0a9a7aa4d4d4e320a207e78d27.tar.gz
Parse feature types in set filters
A filter key of `$type` should work in an `in` filter, just like in an `==` filter.
-rw-r--r--src/mbgl/style/filter_expression.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mbgl/style/filter_expression.cpp b/src/mbgl/style/filter_expression.cpp
index 684715b026..bb755c5644 100644
--- a/src/mbgl/style/filter_expression.cpp
+++ b/src/mbgl/style/filter_expression.cpp
@@ -59,7 +59,11 @@ FilterExpression parseSetFilter(const rapidjson::Value& value) {
Expression expression;
expression.key = { value[1u].GetString(), value[1u].GetStringLength() };
for (rapidjson::SizeType i = 2; i < value.Size(); ++i) {
- expression.values.push_back(parseValue(value[i]));
+ Value parsedValue = parseValue(value[i]);
+ if (expression.key == "$type") {
+ parsedValue = parseFeatureType(parsedValue);
+ }
+ expression.values.push_back(parsedValue);
}
return expression;
}