From bb662e3c686d2b91f67e79b57d9450dc3b21cc7c Mon Sep 17 00:00:00 2001 From: David Larlet Date: Tue, 25 Jun 2024 15:41:17 -0400 Subject: [PATCH] feat: handle multiple dataUrl parameters on map load --- umap/static/umap/js/umap.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/umap/static/umap/js/umap.js b/umap/static/umap/js/umap.js index 84d567c27..b5c41450e 100644 --- a/umap/static/umap/js/umap.js +++ b/umap/static/umap/js/umap.js @@ -184,14 +184,17 @@ U.Map = L.Map.extend({ this._default_extent = true this.options.name = L._('Untitled map') let data = L.Util.queryString('data', null) - let dataUrl = L.Util.queryString('dataUrl', null) + const url = new URL(window.location.href) + const dataUrls = new URLSearchParams(url.search).getAll('dataUrl') const dataFormat = L.Util.queryString('dataFormat', 'geojson') - if (dataUrl) { - dataUrl = decodeURIComponent(dataUrl) - dataUrl = this.localizeUrl(dataUrl) - dataUrl = this.proxyUrl(dataUrl) - const datalayer = this.createDataLayer() - datalayer.importFromUrl(dataUrl, dataFormat) + if (dataUrls.length) { + for (let dataUrl of dataUrls) { + dataUrl = decodeURIComponent(dataUrl) + dataUrl = this.localizeUrl(dataUrl) + dataUrl = this.proxyUrl(dataUrl) + const datalayer = this.createDataLayer() + datalayer.importFromUrl(dataUrl, dataFormat) + } } else if (data) { data = decodeURIComponent(data) const datalayer = this.createDataLayer()