diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2015-05-07 08:35:41 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2015-05-07 08:35:41 -0700 |
commit | 6292e95f80fa2e0a9a7aa4d4d4e320a207e78d27 (patch) | |
tree | c20fc3f88349f294497b70881b26ca3709b34fd5 | |
parent | d3d125694d39faef4d123009beee3e6de09adede (diff) | |
download | qtlocation-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.cpp | 6 |
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; } |