67 lines
1.8 KiB
C++
67 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include <mbgl/util/image.hpp>
|
|
#include <mbgl/util/thread.hpp>
|
|
#include <mbgl/util/optional.hpp>
|
|
#include <mbgl/util/geo.hpp>
|
|
|
|
#include <exception>
|
|
#include <memory>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <functional>
|
|
|
|
namespace mbgl {
|
|
|
|
template<class> 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> scheduler,
|
|
const std::pair<bool, std::string> style,
|
|
const Size&,
|
|
const float pixelRatio,
|
|
const optional<CameraOptions> cameraOptions,
|
|
const optional<LatLngBounds> region,
|
|
const optional<std::string> cacheDir = {},
|
|
const optional<std::string> 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<ScreenCoordinate (const LatLng&)>;
|
|
using LatLngForFn = std::function<LatLng (const ScreenCoordinate&)>;
|
|
using Attributions = std::vector<std::string>;
|
|
using Callback = std::function<void (std::exception_ptr, PremultipliedImage, Attributions, PointForFn, LatLngForFn)>;
|
|
void snapshot(ActorRef<Callback>);
|
|
|
|
private:
|
|
class Impl;
|
|
std::unique_ptr<util::Thread<Impl>> impl;
|
|
};
|
|
|
|
} // namespace mbgl
|