From a2567297b3f117180a2c6f655cd0277d3db27f12 Mon Sep 17 00:00:00 2001 From: Wang Boyu Date: Fri, 22 Mar 2024 10:51:38 -0400 Subject: [PATCH] fix: remove old map layers before rendering new layers --- mesa_geo/visualization/templates/js/MapModule.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mesa_geo/visualization/templates/js/MapModule.js b/mesa_geo/visualization/templates/js/MapModule.js index 2a29cc16..1ba222e6 100644 --- a/mesa_geo/visualization/templates/js/MapModule.js +++ b/mesa_geo/visualization/templates/js/MapModule.js @@ -32,13 +32,19 @@ const MapModule = function (view, zoom, map_width, map_height, tiles, scale_opti } } + let mapLayers = [] let hasFitBounds = false this.renderLayers = function (layers) { + mapLayers.forEach(layer => {layer.remove()}) + mapLayers = [] + layers.rasters.forEach(function (layer) { - L.imageOverlay(layer, layers.total_bounds).addTo(Lmap) + const rasterLayer = L.imageOverlay(layer, layers.total_bounds).addTo(Lmap) + mapLayers.push(rasterLayer) }) layers.vectors.forEach(function (layer) { - L.geoJSON(layer).addTo(Lmap) + const vectorLayer = L.geoJSON(layer).addTo(Lmap) + mapLayers.push(vectorLayer) }) if (!hasFitBounds && !customView && layers.total_bounds.length !== 0) { Lmap.fitBounds(layers.total_bounds) @@ -66,6 +72,8 @@ const MapModule = function (view, zoom, map_width, map_height, tiles, scale_opti this.reset = function () { agentLayer.remove() + mapLayers.forEach(layer => {layer.remove()}) + mapLayers = [] } }