#include #include #include namespace mbgl { namespace style { namespace expression { class GeoJSONFeature : public GeometryTileFeature { public: const Feature& feature; GeoJSONFeature(const Feature& feature_) : feature(feature_) {} FeatureType getType() const override { return apply_visitor(ToFeatureType(), feature.geometry); } PropertyMap getProperties() const override { return feature.properties; } FeatureIdentifier getID() const override { return feature.id; } optional getValue(const std::string& key) const override { auto it = feature.properties.find(key); if (it != feature.properties.end()) { return optional(it->second); } return optional(); } }; EvaluationResult Expression::evaluate(optional zoom, const Feature& feature, optional colorRampParameter) const { GeoJSONFeature f(feature); return this->evaluate(EvaluationContext(zoom, &f, colorRampParameter)); } } // namespace expression } // namespace style } // namespace mbgl