#pragma once #include #include #include #include namespace mbgl { class SymbolFeature : public GeometryTileFeature { public: SymbolFeature(std::unique_ptr feature_) : feature(std::move(feature_)), geometry(feature->getGeometries()) // we need a mutable copy of the geometry for mergeLines() {} FeatureType getType() const override { return feature->getType(); } optional getValue(const std::string& key) const override { return feature->getValue(key); }; std::unordered_map getProperties() const override { return feature->getProperties(); }; optional getID() const override { return feature->getID(); }; GeometryCollection getGeometries() const override { return geometry; }; std::unique_ptr feature; GeometryCollection geometry; optional text; optional icon; std::size_t index; }; } // namespace mbgl