From 6419cd0ab2ba877bbae51ae7590ddba47765dac7 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Wed, 20 Nov 2019 21:05:45 +0200 Subject: [core] Calculate GeoJSON tile geometries in a background thread Call `mapbox::geojsonvt::GeoJSONVT::getTile()` in a background thread, so that the rendering thread is not blocked. --- include/mbgl/style/sources/geojson_source.hpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'include/mbgl/style') diff --git a/include/mbgl/style/sources/geojson_source.hpp b/include/mbgl/style/sources/geojson_source.hpp index 1cc104b245..9569b61df4 100644 --- a/include/mbgl/style/sources/geojson_source.hpp +++ b/include/mbgl/style/sources/geojson_source.hpp @@ -39,17 +39,19 @@ struct GeoJSONOptions { }; class GeoJSONData { public: + using TileFeatures = mapbox::feature::feature_collection; + using Features = mapbox::feature::feature_collection; static std::shared_ptr create(const GeoJSON&, Immutable = GeoJSONOptions::defaultOptions()); virtual ~GeoJSONData() = default; - virtual mapbox::feature::feature_collection getTile(const CanonicalTileID&) = 0; + virtual void getTile(const CanonicalTileID&, const std::function&) = 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 Features getChildren(const std::uint32_t) = 0; + virtual Features 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; }; -- cgit v1.2.1