#ifndef MBGL_MAP_SOURCE #define MBGL_MAP_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include namespace mbgl { class Map; class Environment; class Worker; class GlyphAtlas; class GlyphStore; class SpriteAtlas; class Sprite; class TexturePool; class Style; class Painter; class StyleLayer; class TransformState; class Tile; struct ClipID; struct box; class SourceInfo : private util::noncopyable { public: SourceType type = SourceType::Vector; std::string url; std::vector tiles; uint16_t tile_size = 512; uint16_t min_zoom = 0; uint16_t max_zoom = 22; std::string attribution; std::array center = {{0, 0, 0}}; std::array bounds = {{-180, -90, 180, 90}}; void parseTileJSONProperties(const rapidjson::Value&); std::string tileURL(const TileID& id, float pixelRatio) const; }; class Source : public std::enable_shared_from_this, private util::noncopyable { public: Source(); ~Source(); void load(const std::string& accessToken, Environment&, std::function callback); void update(Map &, Worker &, util::ptr