summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/geojson_tile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/tile/geojson_tile.cpp')
-rw-r--r--src/mbgl/tile/geojson_tile.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/mbgl/tile/geojson_tile.cpp b/src/mbgl/tile/geojson_tile.cpp
index a4c48fb809..65a9d80aec 100644
--- a/src/mbgl/tile/geojson_tile.cpp
+++ b/src/mbgl/tile/geojson_tile.cpp
@@ -10,20 +10,21 @@ GeoJSONTile::GeoJSONTile(const OverscaledTileID& overscaledTileID,
const TileParameters& parameters,
std::shared_ptr<style::GeoJSONData> data_)
: GeometryTile(overscaledTileID, sourceID_, parameters) {
- updateData(std::move(data_));
+ updateData(std::move(data_), false /*needsRelayout*/);
}
-void GeoJSONTile::updateData(std::shared_ptr<style::GeoJSONData> data_, bool resetLayers) {
+void GeoJSONTile::updateData(std::shared_ptr<style::GeoJSONData> data_, bool needsRelayout) {
assert(data_);
data = std::move(data_);
- data->getTile(id.canonical,
- [this, self = weakFactory.makeWeakPtr(), capturedData = data.get(), resetLayers](
- style::GeoJSONData::TileFeatures features) {
- if (!self) return;
- if (data.get() != capturedData) return;
- auto tileData = std::make_unique<GeoJSONTileData>(std::move(features));
- setData(std::move(tileData), resetLayers);
- });
+ if (needsRelayout) reset();
+ data->getTile(
+ id.canonical,
+ [this, self = weakFactory.makeWeakPtr(), capturedData = data.get()](style::GeoJSONData::TileFeatures features) {
+ if (!self) return;
+ if (data.get() != capturedData) return;
+ auto tileData = std::make_unique<GeoJSONTileData>(std::move(features));
+ setData(std::move(tileData));
+ });
}
void GeoJSONTile::querySourceFeatures(