#pragma once #include #include #include namespace mbgl { namespace style { class GeoJSONData; } // namespace style class RenderGeoJSONSource : public RenderSource { public: RenderGeoJSONSource(Immutable); bool isLoaded() const final; void update(Immutable, const std::vector>&, bool needsRendering, bool needsRelayout, const TileParameters&) final; void startRender(Painter&) final; void finishRender(Painter&) final; std::map& getRenderTiles() final; std::unordered_map> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, const RenderStyle& style, const RenderedQueryOptions& options) const final; std::vector querySourceFeatures(const SourceQueryOptions&) const final; void setCacheSize(size_t) final; void onLowMemory() final; void dumpDebugLogs() const final; private: const style::GeoJSONSource::Impl& impl() const; TilePyramid tilePyramid; style::GeoJSONData* data; }; template <> inline bool RenderSource::is() const { return baseImpl->type == SourceType::GeoJSON; } } // namespace mbgl