#pragma once #include #include #include #include #include #include #include #include #include namespace mbgl { template class ActorRef; struct CameraOptions; class FileSource; class Size; class LatLngBounds; namespace style { class Style; } // namespace style class MapSnapshotter { public: MapSnapshotter(FileSource* fileSource, std::shared_ptr scheduler, const std::pair style, const Size&, const float pixelRatio, const optional cameraOptions, const optional region, const optional cacheDir = {}, const optional localFontFamily = {}); ~MapSnapshotter(); void setStyleURL(const std::string& styleURL); std::string getStyleURL() const; void setStyleJSON(const std::string& styleJSON); std::string getStyleJSON() const; void setSize(const Size&); Size getSize() const; void setCameraOptions(const CameraOptions&); CameraOptions getCameraOptions() const; void setRegion(const LatLngBounds&); LatLngBounds getRegion() const; using PointForFn = std::function; using LatLngForFn = std::function; using Attributions = std::vector; using Callback = std::function; void snapshot(ActorRef); private: class Impl; std::unique_ptr> impl; }; } // namespace mbgl