Add image overlays

This commit is contained in:
Nicolò P 2025-06-18 11:20:23 +02:00
parent 632eb1bfc1
commit ecd5db5b4c
3 changed files with 37 additions and 0 deletions

3
.gitignore vendored
View File

@ -15,4 +15,7 @@ shapefile
config.js config.js
# Don't track shperical photos # Don't track shperical photos
webgis/img/spherical/*.png webgis/img/spherical/*.png
# Don't track georeferenced images
webgis/img/geo/*
!webgis/img/geo/.keep
*Zone*Identifier *Zone*Identifier

0
webgis/img/geo/.keep Normal file
View File

View File

@ -114,9 +114,12 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) {
await this.addLayerGroups(map); await this.addLayerGroups(map);
const historicCadastre = await this.imageOverlays();
const archeo = { const archeo = {
'Vincoli archeologici' : layerVincoli, 'Vincoli archeologici' : layerVincoli,
'Vincoli paesistici' : layerPaesistici, 'Vincoli paesistici' : layerPaesistici,
'Catasto storico' : historicCadastre,
}; };
L.control.layers(baseMap, archeo).addTo(map); L.control.layers(baseMap, archeo).addTo(map);
@ -124,6 +127,37 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) {
return map; return map;
} }
/**
* Load georeferenced image overlays layer group
*/
GIS.imageOverlays = async function () {
const data = await this._fetchData('geoimage')
.catch(error => console.error(`Could not fetch data for geo images: ${error}`));
const overlays = L.layerGroup();
for (let image of data) {
let polygonCoords = JSON.parse(image.polygon).coordinates[0];
// Image rectangle bounds are SE and NW coordinates from the PostGIS polygon
// with long/lat swapped...
const se = [polygonCoords[0][1], polygonCoords[0][0]];
const nw = [polygonCoords[2][1], polygonCoords[2][0]];
const bounds = [se, nw];
const imageOverlay = L.imageOverlay(
`/webgis/img/geo/${image.filename}`,
bounds,
{
opacity: 0.8,
alt: `Immagine georeferita dal catasto storico di Capri`
}
);
overlays.addLayer(imageOverlay);
}
return overlays;
}
/** /**
* Add layer groups to map * Add layer groups to map
*/ */