Layer Catastale in React: Tutorial con MapLibre e GeoJSON

Aggiungere un layer catastale interattivo a un'app React in un giorno, senza backend GIS. Tutorial completo: dati GeoJSON, MapLibre GL, stili, click sulla particella e accorgimenti di performance.

Redazione Zornade
3 min di lettura
Immagine di copertina per: Layer Catastale in React: Tutorial con MapLibre e GeoJSON

Il requisito che riceviamo più spesso dalle software house è: una mappa con le particelle catastali cliccabili dentro la nostra app React, senza dover montare un GIS. La risposta standard è MapLibre GL JS con un layer GeoJSON: open source, leggero, senza costi di licenza. In un giorno si ha un prototipo funzionante, in tre un componente di produzione.

Questo tutorial riassume il percorso completo, con i dati catastali di Zornade come fonte (gratuiti, in GeoJSON, licenza aperta).

I pezzi del sistema

  • Dati: GeoJSON delle particelle con proprietà catastali (foglio, particella, subalterno, categoria). I dataset GIS di Zornade sono scaricabili senza registrazione in GeoJSON e GeoPackage, in EPSG:4326.
  • Motore di rendering: MapLibre GL JS, il fork open source di Mapbox GL, usato in produzione da operatori GIS e provider di mappe.
  • Stile base: una basemap chiara (Carto, OpenFreeMap o una basemap commerciale) sopra la quale il layer catastale si sovrappone con riempimenti trasparenti.
  • Interazione: click su una particella per leggere le proprietà e mostrare una scheda laterale.

I passaggi del tutorial

1. Preparare il GeoJSON. Un file comunale pesa pochi MB se già ottimizzato per il web. Se avete un GeoPackage, convertitelo in GeoJSON con ogr2ogr o con il plugin QGIS di Zornade. Verificate sempre la proiezione: il layer deve essere in EPSG:4326 per allinearsi alla basemap.

2. Montare MapLibre in React. Installate il pacchetto maplibre-gl e create un componente Mappa che inizializza la mappa in un contenitore con altezza fissa. L'inizializzazione va fatta una sola volta, in un effetto, e la mappa va distrutta allo smontaggio del componente.

3. Caricare il layer. Due strade: caricare il GeoJSON come file statico accanto all'applicazione, oppure servirlo da un endpoint. Per comuni grandi conviene la seconda, con cache e compressione. Il layer si aggiunge con una sorgente di tipo geojson e un layer fill con colore di contorno leggero.

4. Gestire il click. All'evento click si leggono le proprietà della feature colpita e si aggiorna lo stato React. Da qui parte la scheda laterale con foglio, particella, subalterno e i dati arricchiti.

5. Performance. Per centinaia di migliaia di particelle, il GeoJSON grezzo inizia a pesare: si passa alle tile vettoriali (protobuf) o al servizio di layer già ottimizzato. I nostri dataset per città sono pensati per il rendering web diretto, con geometrie già semplificate dove serve.

Le trappole classiche

  • Dimenticare la proiezione e ritrovarsi il comune in mezzo all'oceano
  • Caricare il GeoJSON a ogni render del componente React, rifacendo la richiesta di rete a ogni stato
  • Non gestire il cleanup della mappa, con leak di listener e doppie istanze
  • Layer fill con opacità piena che nasconde la basemap: le particelle vanno riempite al 20-30%

FAQ

MapLibre è gratuito?

Sì, è open source con licenza BSD. È il sostituto diretto di Mapbox GL JS v2, di cui è il fork di riferimento.

Dove trovo le particelle in GeoJSON?

Nei dataset gratuiti di Zornade: particelle per comune in GeoJSON e GeoPackage, con licenza aperta e download senza registrazione.

Serve un backend GIS?

Per un layer statico no: basta un file GeoJSON servito con cache. Serve un backend quando servono query spaziali, aggiornamenti frequenti o volumi nazionali.

Come si gestiscono i dati nazionali?

Con tile vettoriali o un'API: caricare 85 milioni di particelle come unico GeoJSON non è un'opzione.

Devi costruire un prodotto con layer catastali? Parliamo di architettura e dati: prima valutazione tecnica gratuita.

Servono integrazioni custom o elaborazioni avanzate su questi dataset?

Costruiamo pipeline ETL, API personalizzate e piattaforme dati geospaziali per chi ha bisogno di più dei dati grezzi. Nessun impegno, prima valutazione gratuita.

Richiedi un preventivo gratuito