diff options
author | Juha Alanen <juha.alanen@mapbox.com> | 2019-08-21 14:29:57 +0300 |
---|---|---|
committer | Juha Alanen <19551460+jmalanen@users.noreply.github.com> | 2019-09-18 14:29:15 +0300 |
commit | 91171bc1a98acf3d21704fa86ad7ada5d1ac762e (patch) | |
tree | 76e81ebd0b825ec2af5e85546357a6aa7f5dd35c /src | |
parent | 9e262ee55fdbc8b2e409a0d8a0da07841ef5eede (diff) | |
download | qtlocation-mapboxgl-91171bc1a98acf3d21704fa86ad7ada5d1ac762e.tar.gz |
[core] Add feature-state compound expression
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/style/expression/compound_expression.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mbgl/style/expression/compound_expression.cpp b/src/mbgl/style/expression/compound_expression.cpp index c637856ad9..8bd21bdad7 100644 --- a/src/mbgl/style/expression/compound_expression.cpp +++ b/src/mbgl/style/expression/compound_expression.cpp @@ -675,6 +675,20 @@ const auto& errorCompoundExpression() { return signature; } +const auto& featureStateCompoundExpression() { + static auto signature = detail::makeSignature("feature-state", [](const EvaluationContext& params, const std::string& key) -> Result<Value> { + mbgl::Value state; + if (params.featureState) { + auto it = params.featureState->find(key); + if (it != params.featureState->end()) { + state = mbgl::Value(it->second); + } + } + return toExpressionValue(state); + }); + return signature; +} + // Legacy Filters const auto& filterEqualsCompoundExpression() { static auto signature = detail::makeSignature("filter-==", [](const EvaluationContext& params, const std::string& key, const Value &lhs) -> Result<bool> { @@ -921,6 +935,7 @@ MAPBOX_ETERNAL_CONSTEXPR const auto compoundExpressionRegistry = mapbox::eternal { "concat", concatCompoundExpression }, { "resolved-locale", resolvedLocaleCompoundExpression }, { "error", errorCompoundExpression }, + { "feature-state", featureStateCompoundExpression }, // Legacy Filters { "filter-==", filterEqualsCompoundExpression }, { "filter-id-==", filterIdEqualsCompoundExpression }, |