diff options
-rw-r--r-- | src/mbgl/renderer/sources/render_geojson_source.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp index d6a81e13ca..f7976d7210 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<style::Source::Impl> baseImpl_, GeoJSONData* data_ = impl().getData(); - if (!data_) { - return; - } - if (data_ != data) { data = data_; tilePyramid.cache.clear(); - for (auto const& item : tilePyramid.tiles) { - static_cast<GeoJSONTile*>(item.second.get())->updateData(data->getTile(item.first.canonical)); + if (data) { + for (auto const& item : tilePyramid.tiles) { + static_cast<GeoJSONTile*>(item.second.get())->updateData(data->getTile(item.first.canonical)); + } + } else { + tilePyramid.tiles.clear(); + tilePyramid.renderTiles.clear(); } } + if (!data) { + return; + } + tilePyramid.update(layers, needsRendering, needsRelayout, |