From 8c498cd36c07b1019e5ddb60d5f9f8872f036e25 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Wed, 30 Oct 2019 11:30:54 +0200 Subject: [core] Introduce and apply GeoJSONData::create() API --- include/mbgl/style/sources/geojson_source.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'include') diff --git a/include/mbgl/style/sources/geojson_source.hpp b/include/mbgl/style/sources/geojson_source.hpp index a256ad6f15..c8dc65b912 100644 --- a/include/mbgl/style/sources/geojson_source.hpp +++ b/include/mbgl/style/sources/geojson_source.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -34,6 +35,20 @@ struct GeoJSONOptions { using ClusterProperties = std::unordered_map; ClusterProperties clusterProperties; }; +class GeoJSONData { +public: + static std::shared_ptr create(const GeoJSON&, const GeoJSONOptions&); + + virtual ~GeoJSONData() = default; + virtual mapbox::feature::feature_collection getTile(const CanonicalTileID&) = 0; + + // SuperclusterData + virtual mapbox::feature::feature_collection getChildren(const std::uint32_t) = 0; + virtual mapbox::feature::feature_collection getLeaves(const std::uint32_t, + const std::uint32_t limit = 10u, + const std::uint32_t offset = 0u) = 0; + virtual std::uint8_t getClusterExpansionZoom(std::uint32_t) = 0; +}; class GeoJSONSource final : public Source { public: @@ -42,6 +57,7 @@ public: void setURL(const std::string& url); void setGeoJSON(const GeoJSON&); + void setGeoJSONData(std::shared_ptr); optional getURL() const; -- cgit v1.2.1