Compare commits

..

2 Commits

Author SHA1 Message Date
f7ecd4326a Add Arsenale area layer... 2024-06-13 16:06:06 +02:00
d36cdd4d17 Some minor cleaning 2024-06-13 15:57:53 +02:00
6 changed files with 32 additions and 27 deletions

File diff suppressed because one or more lines are too long

View File

@ -63,7 +63,6 @@
<div class="modal">
<div class="modal-background"></div>
<div class="modal-content has-background-white">
<!-- Any other Bulma elements you want -->
</div>
<button class="modal-close is-large" aria-label="close"></button>
</div>

View File

@ -105,13 +105,16 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) {
data = await GIS._fetchData(layer.id);
}
const marker = L.marker(coords)
.addTo(map)
.bindTooltip(Object.keys(archeo).find(k => archeo[k] === layer))
.openTooltip();
// TODO: terrible!
if (!layer.id.includes('area')) {
const marker = L.marker(coords)
.addTo(map)
.bindTooltip(Object.keys(archeo).find(k => archeo[k] === layer))
.openTooltip();
if (typeof data === 'object') {
marker.on('click', () => UI.openModal(data));
if (typeof data === 'object') {
marker.on('click', () => UI.openModal(data));
}
}
});
@ -128,11 +131,14 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) {
GIS.initLayers = async function(map) {
let layerMater = await this.loadLayer('matermania.geojson', optionsSiti, false);
let layerArsenale = await this.loadLayer('arsenale.geojson', optionsSiti, false);
let layerArsenaleArea = await this.loadLayer('arsenale_area.geojson', optionsSiti, false);
let layerGradola = await this.loadLayer('gradola.geojson', optionsSiti, false);
layerMater.id = 'matermania';
layerGradola.id = 'gradola';
layerArsenale.id = 'arsenale';
layerArsenaleArea.id = 'arsenale_area';
let layerVincoli = await this.loadLayer('vincoli.geojson', optionsVincoli);
// TODO named parameters??
let layerPaesistici = await this.loadLayer('paesistici.geojson', optionsPaesistici);
@ -142,7 +148,7 @@ GIS.initLayers = async function(map) {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
});
const sitesGroup = new L.LayerGroup([layerMater, layerGradola, layerArsenale]);
const sitesGroup = new L.LayerGroup([layerMater, layerGradola, layerArsenale, layerArsenaleArea]);
const baseGroup = new L.LayerGroup([osmap]);
baseGroup.addTo(map);
sitesGroup.addTo(map);
@ -152,7 +158,8 @@ GIS.initLayers = async function(map) {
const archeo = {
"Villa di Gradola" : layerGradola,
"Grotta di Matermania" : layerMater,
"Grotta dell'Arsenale" : layerArsenale,
"Grotta dell'Arsenale (planimetria)" : layerArsenale,
"Grotta dell'Arsenale (area)" : layerArsenaleArea,
"Vincoli archeologici" : layerVincoli,
"Vincoli paesistici" : layerPaesistici,
};

View File

@ -1,4 +1,4 @@
import GIS from './caprigis.js';
import GIS from './gis.js';
import UI from './ui.js';
document.addEventListener('DOMContentLoaded', async () => {
@ -8,14 +8,4 @@ document.addEventListener('DOMContentLoaded', async () => {
UI.addCenterMapControl(map, GIS.CENTER_COORDS, GIS.INIT_ZOOM);
UI.toggleMenu('siti');
UI.sitesMenu('.menu-list', map, sites);
/*
for (let site of Object.keys(sites)) {
if (!site.includes('Vincoli')) {
let layer = sites[site];
const centerCoords = layer.getBounds().getCenter();
UI.addSitesControl(map, centerCoords, site, GIS.INIT_ZOOM);
}
}
*/
});

View File

@ -1,6 +1,6 @@
{
"source": {
"include": ["caprigis.js", "index.js"],
"include": ["gis.js", "ui.js", "index.js"],
"includePattern": ".js$",
"excludePattern": "(vendor/|docs)"
},

View File

@ -6,9 +6,9 @@
const UI = {};
/**
* Add a control to center the map
* @param {Map} map
* @param {LatLngExpression} centerCoords
* Add a Leaflet control to center the map
* @param {Map} map The Leaflet map object
* @param {LatLngExpression} centerCoords The coordinates to center the map
* @param {number} zoom Zoom level
*/
UI.addCenterMapControl = function (map, centerCoords, zoom) {
@ -51,7 +51,7 @@ UI.toggleMenu = function (triggerId) {
menu.classList.toggle('is-hidden');
menu.classList.toggle('is-2');
document.querySelector('#map').parentElement.classList.toggle('is-full');
})
});
}
/**
* Open a modal with DB data