diff --git a/webgis/index.html b/webgis/index.html
index d0f3db8..c8fa873 100644
--- a/webgis/index.html
+++ b/webgis/index.html
@@ -284,14 +284,18 @@
diff --git a/webgis/js/controllers/layer_controller.js b/webgis/js/controllers/layer_controller.js
index e44d616..0b16a46 100644
--- a/webgis/js/controllers/layer_controller.js
+++ b/webgis/js/controllers/layer_controller.js
@@ -33,6 +33,14 @@ export default class extends Controller {
else map.removeLayer(currentLayer);
}
+ toggleCadastral() {
+ const map = GisState.map;
+ const wms = GisState.cartography.cadastral;
+
+ if (!map.hasLayer(wms)) map.addLayer(wms);
+ else map.removeLayer(wms);
+ }
+
/**
* @todo Use Stimulus values?
* @param {Event} event
diff --git a/webgis/js/gis.js b/webgis/js/gis.js
index 1da4301..16be9e6 100644
--- a/webgis/js/gis.js
+++ b/webgis/js/gis.js
@@ -123,20 +123,22 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) {
GisState.map = map;
- // DEBUG - Test reprojected WMS
const reprojectedWMSLayer = GIS.reprojectWMS();
const wmsLayer = new reprojectedWMSLayer(
'https://wms.cartografia.agenziaentrate.gov.it/inspire/wms/ows01.php?',
{
- layers: 'fabbricati',
- format: 'image/png',
+ layers: 'CP.CadastralParcel,fabbricati',
transparent: true,
+ format: 'image/png',
version: '1.1.1',
- attribution: '© Agenzia Entrate',
+ minZoom: 15,
+ maxZoom: this.MAX_ZOOM,
+ tileSize: 1024,
+ opacity: 0.6,
}
);
- wmsLayer.addTo(map);
+ GisState.cartography.cadastral = wmsLayer;
return map;
}
@@ -584,7 +586,7 @@ GIS.reprojectWMS = function (crs = 'EPSG:4258') {
const reprojectedWMSLayer = L.TileLayer.WMS.extend({
getTileUrl(tilePoint) {
const map = GisState.map;
- const crs = map.options.crs;
+ //const crs = map.options.crs;
const tileSize = this.getTileSize();
//const geoPoint = L.point(tilePoint.x, tilePoint.y);
@@ -594,11 +596,11 @@ GIS.reprojectWMS = function (crs = 'EPSG:4258') {
)
const sePoint = nwPoint.add(L.point(tileSize));
- const nw = crs.project(map.unproject(nwPoint, tilePoint.z));
- const se = crs.project(map.unproject(sePoint, tilePoint.z));
+ const nw = map.unproject(nwPoint, tilePoint.z);
+ const se = map.unproject(sePoint, tilePoint.z);
- const [minX, minY] = proj4('EPSG:4326', 'EPSG:4258', [nw.x, se.y]);
- const [maxX, maxY] = proj4('EPSG:4326', 'EPSG:4258', [se.x, nw.y]);
+ const [minX, minY] = proj4('EPSG:4326', 'EPSG:4258', [nw.lng, se.lat]);
+ const [maxX, maxY] = proj4('EPSG:4326', 'EPSG:4258', [se.lng, nw.lat]);
const bbox = [minX, minY, maxX, maxY].join(',');
diff --git a/webgis/js/state.js b/webgis/js/state.js
index 1decfa5..a9e5dc1 100644
--- a/webgis/js/state.js
+++ b/webgis/js/state.js
@@ -39,6 +39,7 @@ export const GisState = {
apiUrl : null,
cartography : {
historic: [],
+ cadastral: null,
}
}