From: Tom Hughes Date: Wed, 29 Jan 2025 18:24:50 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/pull/5573' X-Git-Tag: live~367 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/a6622e7d2c7adb59491efa0d1f21914b2a0a362f?hp=0cd18eb02f853bfa93673f046b793bd53ac5aa68 Merge remote-tracking branch 'upstream/pull/5573' --- diff --git a/app/assets/javascripts/leaflet.map.js b/app/assets/javascripts/leaflet.map.js index bdc8532d1..10ce94715 100644 --- a/app/assets/javascripts/leaflet.map.js +++ b/app/assets/javascripts/leaflet.map.js @@ -115,19 +115,18 @@ L.OSM.Map = L.Map.extend({ }, updateLayers: function (layerParam) { - var layers = layerParam || "M"; + const oldBaseLayer = this.getMapBaseLayer(); + let newBaseLayer; - for (let i = this.baseLayers.length - 1; i >= 0; i--) { - if (layers.indexOf(this.baseLayers[i].options.code) === -1) { - this.removeLayer(this.baseLayers[i]); + for (const layer of this.baseLayers) { + if (!newBaseLayer || layerParam.includes(layer.options.code)) { + newBaseLayer = layer; } } - for (let i = this.baseLayers.length - 1; i >= 0; i--) { - if (layers.indexOf(this.baseLayers[i].options.code) >= 0 || i === 0) { - this.addLayer(this.baseLayers[i]); - return; - } + if (newBaseLayer !== oldBaseLayer) { + if (oldBaseLayer) this.removeLayer(oldBaseLayer); + if (newBaseLayer) this.addLayer(newBaseLayer); } },