'use strict'; // Global leaflet /** * @namespace GIS */ const GIS = {}; const BASE_URL = location.href; /** * @param {string} mapId * @param {number} zoomLevel * @returns {Map} */ GIS.initMap = function (mapId, zoomLevel = 15) { let map = L.map(mapId, { attributionControl: false, minZoom: 3 }).setView([40.5492, 14.2317], zoomLevel); // Il sistema di riferimento per i livelli geoJSON รจ EPSG3857 map.crs = L.CRS.EPSG3857; L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); return map; } /** * @param {string} geoJSON * @param {Map} map */ GIS.loadLayer = async function (geoJSON, map, color = '#555') { const layer = await fetch(`${BASE_URL}/geojson/${geoJSON}`) .then(res => res.json()) .catch(error => console.error(`Can't load layer ${geoJSON}. Reason: ${error}`)); L.geoJson(layer, { style: function (feature) { let style = { color: color, opacity: 0.4, weight: 2, fillColor: color, fillOpacity: 1 }; return style; } }).addTo(map); } export default GIS;