From 3f512497bed232372095e2030da0209172cea509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20P?= Date: Mon, 18 Mar 2024 16:46:34 +0100 Subject: [PATCH] Manage popup content for features --- js/caprigis.js | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/js/caprigis.js b/js/caprigis.js index 1c4187d..f5369a7 100644 --- a/js/caprigis.js +++ b/js/caprigis.js @@ -19,7 +19,7 @@ GIS.initMap = async function (mapId, zoomLevel = 15) { }); let map = L.map(mapId, { attributionControl: false, - minZoom: 6, + minZoom: 11, layers: [osmap, layerVincoli] }).setView([40.5492, 14.2317], zoomLevel); @@ -38,6 +38,7 @@ GIS.initMap = async function (mapId, zoomLevel = 15) { // Il sistema di riferimento per i livelli geoJSON è EPSG3857 } /** + * @todo Distinguere tipo di geojson per contenuto popup * @param {string} geoJSON * @param {Map} map */ @@ -46,6 +47,7 @@ GIS.loadLayer = async function (geoJSON, color = '#987db7') { .then(res => res.json()) .catch(error => console.error(`Can't load layer ${geoJSON}. Reason: ${error}`)); + // DEBUG console.log(data.features); // Show data from feature in popUp? @@ -61,18 +63,33 @@ GIS.loadLayer = async function (geoJSON, color = '#987db7') { return style; }, onEachFeature: function (feature, layer) { - layer.bindPopup(` + layer.bindPopup(GIS.featurePopup(geoJSON, feature)); + } + }); + + return layer; +} +/** + * Generate proper content for features popup + * @todo Hard-coded names!! + * + * @param {string} layerName + * @param {object} feature + * @returns {string} The popup's content + */ +GIS.featurePopup = function (layerName, feature) { + const content = { + 'vincoli.geojson' : `
Oggetto${feature.properties.OGGETTO}
Anno${feature.properties.ANNO}
Comune${feature.properties.COMUNE}
Proprietà${feature.properties.PROPRIETA}
- `); - } - }); + `, + }; - return layer; + return content[layerName]; } export default GIS; \ No newline at end of file