From 8754e7f9325d0834026888d7f780c7272073c782 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Thu, 14 Sep 2017 09:41:53 -0400 Subject: [core] Bypass GeoJSON tile data update if tileID zoom is above source's maxZoom --- mapbox-gl-js | 2 +- src/mbgl/renderer/sources/render_geojson_source.cpp | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mapbox-gl-js b/mapbox-gl-js index 7d452eafbd..3634d94547 160000 --- a/mapbox-gl-js +++ b/mapbox-gl-js @@ -1 +1 @@ -Subproject commit 7d452eafbd8ecc008b6d934e20175f32bc7945bb +Subproject commit 3634d945477cb7dbbf1e0bebf4cf51542821895c diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp index f7976d7210..504db78ea3 100644 --- a/src/mbgl/renderer/sources/render_geojson_source.cpp +++ b/src/mbgl/renderer/sources/render_geojson_source.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -39,16 +40,18 @@ void RenderGeoJSONSource::update(Immutable baseImpl_, tilePyramid.cache.clear(); if (data) { - for (auto const& item : tilePyramid.tiles) { - static_cast(item.second.get())->updateData(data->getTile(item.first.canonical)); + const uint8_t maxZ = impl().getZoomRange().max; + for (const auto& pair : tilePyramid.tiles) { + if (pair.first.canonical.z <= maxZ) { + static_cast(pair.second.get())->updateData(data->getTile(pair.first.canonical)); + } } - } else { - tilePyramid.tiles.clear(); - tilePyramid.renderTiles.clear(); } } if (!data) { + tilePyramid.tiles.clear(); + tilePyramid.renderTiles.clear(); return; } -- cgit v1.2.1