MapLibre Native Core
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
tileset.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <mbgl/util/range.hpp>
5 #include <mbgl/util/geo.hpp>
6 
7 #include <tuple>
8 #include <vector>
9 #include <string>
10 #include <cstdint>
11 #include <optional>
12 
13 namespace mbgl {
14 
15 class Tileset {
16 public:
17  enum class Scheme : bool { XYZ, TMS };
18  enum class DEMEncoding : bool { Mapbox, Terrarium };
19 
20  std::vector<std::string> tiles;
24  // DEMEncoding is not supported by the TileJSON spec
26  std::optional<LatLngBounds> bounds;
27 
28  Tileset(std::vector<std::string> tiles_ = std::vector<std::string>(),
29  Range<uint8_t> zoomRange_ = {0, util::DEFAULT_MAX_ZOOM},
30  std::string attribution_ = {},
31  Scheme scheme_ = Scheme::XYZ,
32  DEMEncoding encoding_ = DEMEncoding::Mapbox)
33  : tiles(std::move(tiles_)),
34  zoomRange(zoomRange_),
35  attribution(std::move(attribution_)),
36  scheme(scheme_),
37  encoding(encoding_){};
38 
39  // TileJSON also includes center and zoom but they are not used by mbgl.
40 
41  friend bool operator==(const Tileset& lhs, const Tileset& rhs) {
42  return std::tie(lhs.tiles, lhs.zoomRange, lhs.attribution, lhs.scheme, lhs.bounds)
43  == std::tie(rhs.tiles, rhs.zoomRange, rhs.attribution, rhs.scheme, rhs.bounds);
44  }
45 
46  friend bool operator!=(const Tileset& lhs, const Tileset& rhs) {
47  return !(lhs == rhs);
48  }
49 };
50 
51 } // namespace mbgl
std::vector< std::string > tiles
Definition: tileset.hpp:20
friend bool operator!=(const Tileset &lhs, const Tileset &rhs)
Definition: tileset.hpp:46
std::optional< LatLngBounds > bounds
Definition: tileset.hpp:26
Scheme scheme
Definition: tileset.hpp:23
std::string attribution
Definition: tileset.hpp:22
Tileset(std::vector< std::string > tiles_=std::vector< std::string >(), Range< uint8_t > zoomRange_={0, util::DEFAULT_MAX_ZOOM}, std::string attribution_={}, Scheme scheme_=Scheme::XYZ, DEMEncoding encoding_=DEMEncoding::Mapbox)
Definition: tileset.hpp:28
Range< uint8_t > zoomRange
Definition: tileset.hpp:21
DEMEncoding encoding
Definition: tileset.hpp:25
friend bool operator==(const Tileset &lhs, const Tileset &rhs)
Definition: tileset.hpp:41
std::unique_ptr< Expression > string(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
constexpr uint8_t DEFAULT_MAX_ZOOM
Definition: constants.hpp:40
Definition: actor.hpp:15