diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp index d6a81e13c..f7976d721 100644 --- a/src/mbgl/renderer/sources/render_geojson_source.cpp +++ b/src/mbgl/renderer/sources/render_geojson_source.cpp @@ -34,19 +34,24 @@ void RenderGeoJSONSource::update(Immutable baseImpl_, GeoJSONData* data_ = impl().getData(); - if (!data_) { - return; - } - if (data_ != data) { data = data_; tilePyramid.cache.clear(); - for (auto const& item : tilePyramid.tiles) { - static_cast(item.second.get())->updateData(data->getTile(item.first.canonical)); + if (data) { + for (auto const& item : tilePyramid.tiles) { + static_cast(item.second.get())->updateData(data->getTile(item.first.canonical)); + } + } else { + tilePyramid.tiles.clear(); + tilePyramid.renderTiles.clear(); } } + if (!data) { + return; + } + tilePyramid.update(layers, needsRendering, needsRelayout,