wms: layer added to map with control

This commit is contained in:
Nicolò P 2025-06-30 10:07:45 +02:00
parent 09d5a31a07
commit 6f632c3ee2
4 changed files with 31 additions and 16 deletions

View File

@ -284,14 +284,18 @@
</template> </template>
<aside class="menu ml-4 mt-3" data-id="cartography-aside"> <aside class="menu ml-4 mt-3" data-id="cartography-aside">
<button title="Chiudi menu" class="delete is-pulled-right" data-action="menu#closeCartography"></button> <button title="Chiudi menu" class="delete is-pulled-right" data-action="menu#closeCartography"></button>
<p class="menu-label is-size-5 mt-2 is-clickable" data-id="historic"> <ul class="menu-list">
<li>
<input type="checkbox" data-controller="layer" data-action="layer#toggleCadastral" />
Catasto Agenzia delle Entrate (particelle e fabbricati)
</li>
</ul>
<p class="menu-label is-size-5 mt-4 is-clickable" data-id="historic">
<span role="button" data-action="click->menu#toggle" data-id="historic"> <span role="button" data-action="click->menu#toggle" data-id="historic">
Catasto storico Catasto storico
<!-- <span class="icon pl-2">
<span class="icon pl-2"> <i class="fa fa-chevron-right" data-menu-target="icon" data-id="historic"></i>
<i class="fa fa-chevron-right" data-menu-target="icon" data-id="historic"></i> </span>
</span>
-->
</span> </span>
</p> </p>
</aside> </aside>

View File

@ -33,6 +33,14 @@ export default class extends Controller {
else map.removeLayer(currentLayer); 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? * @todo Use Stimulus values?
* @param {Event} event * @param {Event} event

View File

@ -123,20 +123,22 @@ GIS.initMap = async function (mapId, zoomLevel = this.INIT_ZOOM) {
GisState.map = map; GisState.map = map;
// DEBUG - Test reprojected WMS
const reprojectedWMSLayer = GIS.reprojectWMS(); const reprojectedWMSLayer = GIS.reprojectWMS();
const wmsLayer = new reprojectedWMSLayer( const wmsLayer = new reprojectedWMSLayer(
'https://wms.cartografia.agenziaentrate.gov.it/inspire/wms/ows01.php?', 'https://wms.cartografia.agenziaentrate.gov.it/inspire/wms/ows01.php?',
{ {
layers: 'fabbricati', layers: 'CP.CadastralParcel,fabbricati',
format: 'image/png',
transparent: true, transparent: true,
format: 'image/png',
version: '1.1.1', 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; return map;
} }
@ -584,7 +586,7 @@ GIS.reprojectWMS = function (crs = 'EPSG:4258') {
const reprojectedWMSLayer = L.TileLayer.WMS.extend({ const reprojectedWMSLayer = L.TileLayer.WMS.extend({
getTileUrl(tilePoint) { getTileUrl(tilePoint) {
const map = GisState.map; const map = GisState.map;
const crs = map.options.crs; //const crs = map.options.crs;
const tileSize = this.getTileSize(); const tileSize = this.getTileSize();
//const geoPoint = L.point(tilePoint.x, tilePoint.y); //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 sePoint = nwPoint.add(L.point(tileSize));
const nw = crs.project(map.unproject(nwPoint, tilePoint.z)); const nw = map.unproject(nwPoint, tilePoint.z);
const se = crs.project(map.unproject(sePoint, tilePoint.z)); const se = map.unproject(sePoint, tilePoint.z);
const [minX, minY] = proj4('EPSG:4326', 'EPSG:4258', [nw.x, se.y]); const [minX, minY] = proj4('EPSG:4326', 'EPSG:4258', [nw.lng, se.lat]);
const [maxX, maxY] = proj4('EPSG:4326', 'EPSG:4258', [se.x, nw.y]); const [maxX, maxY] = proj4('EPSG:4326', 'EPSG:4258', [se.lng, nw.lat]);
const bbox = [minX, minY, maxX, maxY].join(','); const bbox = [minX, minY, maxX, maxY].join(',');

View File

@ -39,6 +39,7 @@ export const GisState = {
apiUrl : null, apiUrl : null,
cartography : { cartography : {
historic: [], historic: [],
cadastral: null,
} }
} }