#pragma once #include #include #include namespace mbgl { class AsyncRequest; class CanonicalTileID; namespace style { class GeoJSONData { public: virtual ~GeoJSONData() = default; virtual mapbox::geometry::feature_collection getTile(const CanonicalTileID&) = 0; }; class GeoJSONSource::Impl : public Source::Impl { public: Impl(std::string id, GeoJSONOptions); Impl(const GeoJSONSource::Impl&, const GeoJSON&); ~Impl() final; Range getZoomRange() const; GeoJSONData* getData() const; optional getAttribution() const final; private: GeoJSONOptions options; std::unique_ptr data; }; } // namespace style } // namespace mbgl