Cos’è l’Intersezione tra Poligoni nel GIS?
L’intersezione tra poligoni è un’operazione centrale di overlay vettoriale nei flussi di lavoro di intersezione della geoelaborazione GIS: partendo da due layer di poligoni, restituisce una nuova geometria contenente solo l’area comune a entrambi gli input. Ovunque tu debba trovare poligoni sovrapposti online, che siano due distretti di zonizzazione, un’area alluvionale rispetto a un layer di particelle, o due aree di servizio, è questa l’operazione che risponde alla domanda. Questo strumento esegue l’intero calcolo localmente nel tuo browser: disegna due forme direttamente sulla mappa, oppure carica un file GeoJSON o uno Shapefile compresso, e funziona come uno strumento autonomo di sovrapposizione GeoJSON KML senza inviare i tuoi dati da nessuna parte.
Come Funziona l’Algoritmo di Intersezione
Dietro le quinte, un’intersezione tra poligoni è un’operazione booleana su due anelli chiusi: l’output conserva ogni punto che si trova sia dentro il Poligono A SIA dentro il Poligono B, e scarta tutto il resto. Per due forme convesse sembra semplice, ma i confini amministrativi reali, i contorni dei bacini idrografici e le particelle catastali sono quasi sempre concavi e spesso contengono buchi, quindi un vero strumento di controllo topologico della sovrapposizione GIS ha bisogno di un algoritmo che gestisca correttamente forme poligonali arbitrarie, non solo poligoni convessi semplici.
I primi algoritmi di clipping non riuscivano a farlo in modo affidabile. Sutherland–Hodgman (1974) produce risultati corretti solo se il poligono di ritaglio è convesso, il che esclude la maggior parte dei dati cartografici reali. Weiler–Atherton (1977) ha migliorato la situazione percorrendo i contorni di entrambi i poligoni e alternandosi tra loro a ogni punto di intersezione, gestendo correttamente forme concave e più pezzi in output, ma con difficoltà su alcuni casi degeneri come bordi condivisi o anelli che si toccano da soli. L’algoritmo di Vatti (1992) ha generalizzato ulteriormente il clipping usando una tabella dei bordi attivi lungo scanline orizzontali, diventando la base di librerie di clipping molto diffuse come Clipper di Angus Johnson.
L’Approccio a Linea di Scansione (Sweep-Line) Usato da Questo Strumento
- Costruire una coda di eventi: Ogni vertice e ogni estremo di bordo di entrambi i poligoni viene raccolto in una coda e ordinato da sinistra a destra in base alla coordinata X.
- Far scorrere una linea verticale: Una linea immaginaria attraversa la coda da sinistra a destra, mentre una struttura di stato tiene traccia di quali bordi del Poligono A e del Poligono B sono attivi in quella posizione X.
- Rilevare gli incroci tra bordi: Ogni volta che un bordo di A incrocia un bordo di B, la scansione calcola il punto di intersezione esatto e divide entrambi i bordi in quel punto — questo è il nucleo matematico dell’analisi di sovrapposizione spaziale.
- Classificare ogni segmento: Usando regole di avvolgimento (winding rules), ogni segmento di bordo risultante viene etichettato come interno o esterno all’altro poligono, così da conservare solo i segmenti interni sia ad A sia a B.
- Ricostruire gli anelli in output: I segmenti conservati vengono ricomposti in anelli chiusi, gestendo correttamente in un solo passaggio più aree di sovrapposizione separate e buchi.
Il motore di questo strumento implementa un algoritmo booleano a linea di scansione in stile Martinez–Rueda, che gira in circa O((n + k) log n) per n vertici in input e k incroci, ed è robusto rispetto ai casi degeneri (bordi condivisi, vertici che si toccano, anelli auto-intersecanti) che mandano in crisi i clipper più semplici. Prima di eseguire la scansione completa su ogni coppia, lo strumento effettua anche un economico controllo preliminare tramite bounding box, così un’intersezione di geoelaborazione GIS su decine di feature non perde tempo a testare coppie che chiaramente non possono sovrapporsi.
Casi d’Uso Reali
Le Librerie GIS Dietro l’Overlay tra Poligoni
Ogni strumento GIS di overlay serio si basa su uno dei pochi motori di geometria computazionale esistenti, ed è utile sapere quale sta facendo il lavoro quando estrai l’area comune tra poligoni in un flusso di lavoro professionale.
- Turf.js / polygon-clipping: Il motore proprio di questo strumento. La funzione @turf/intersect di Turf si appoggia al pacchetto npm polygon-clipping, un’implementazione in puro JavaScript dell’algoritmo a linea di scansione di Martinez–Rueda. Essendo puro JavaScript, gira interamente nella scheda del tuo browser, senza andata e ritorno verso un server.
- GEOS (Geometry Engine, Open Source): Una libreria C/C++ che calcola ST_Intersection in PostGIS e alimenta l’algoritmo nativo di Intersezione nella Cassetta degli Strumenti di elaborazione di QGIS. Se hai mai eseguito un’intersezione tra layer vettoriali lato QGIS, è stata GEOS a fare i calcoli geometrici sotto il cofano.
- JTS (Java Topology Suite): L’implementazione Java originale da cui GEOS è stata portata. JTS è alla base di GeoTools e del processo di Intersezione in GeoServer WPS, ed è l’implementazione di riferimento rispetto alla quale molte altre librerie vengono validate.
- Shapely: La libreria di geometria di Python, che a sua volta si appoggia a GEOS. I data scientist che eseguono analisi di sovrapposizione spaziale in geopandas stanno, un livello più sotto, chiamando le stesse routine GEOS usate da QGIS e PostGIS.
- shpjs: Gestisce il lato file piuttosto che la matematica geometrica: decodifica uno Shapefile compresso caricato (.shp/.dbf/.shx) in GeoJSON interamente lato client, il che permette a questo strumento di accettare come input un’esportazione di intersezione shapefile senza alcun caricamento su server.
Tutti e cinque questi strumenti concordano sulla matematica sottostante, poiché risolvono tutti lo stesso problema di overlay booleano. La differenza pratica sta in dove avviene il calcolo: GEOS/JTS/Shapely girano su un server o su un’installazione GIS desktop, mentre il motore di questo strumento, basato su Turf.js, funziona come un cercatore di sovrapposizioni tra poligoni sulla mappa direttamente sul tuo dispositivo, motivo per cui qui non è mai richiesto il caricamento di un file su un server remoto.
Personalizzare lo Stile dei Layer
Ogni layer, incluso il risultato dell’intersezione, può essere restilizzato in modo indipendente:
- Selettore colore: Clicca sul campione di colore accanto a qualsiasi layer nella barra laterale per cambiarne istantaneamente il colore di riempimento e del contorno.
- Attiva/disattiva visibilità: Deseleziona un layer per nasconderlo sulla mappa senza eliminarlo, utile per confrontare separatamente Layer A e Layer B con il risultato dell’intersezione.
- Zoom sul layer: Clicca sull’icona a bersaglio accanto a un layer per adattare la vista della mappa ai suoi confini.
Nessuna di queste impostazioni di stile viene salvata al di fuori della tua sessione — controllano solo l’aspetto della mappa mentre lavori.
Come Aggiungere i Tuoi Layer di Poligoni
Ci sono due modi per portare i poligoni nello strumento prima di eseguire un’intersezione:
- Disegnare sulla mappa: Clicca su "Draw Polygon", clicca sulla mappa per posizionare i vertici, poi fai doppio clic, premi Invio, o clicca su Finish per chiudere la forma. Ripeti per aggiungere un secondo poligono.
- Caricare un file: Trascina e rilascia un file .geojson o uno Shapefile compresso (.zip con .shp/.dbf/.shx all’interno) in un punto qualsiasi della mappa, oppure usa il pulsante Upload. Vengono lette solo le feature di tipo Polygon e MultiPolygon; punti e linee vengono ignorati.
Una volta ottenuti almeno due layer di poligoni, scegline uno come Layer A e l’altro come Layer B nella barra laterale, poi clicca su "Find Intersection" per calcolare l’area condivisa.
Domande Frequenti
Gestire Più Layer
Il gestore layer nella barra laterale tiene in un unico elenco ogni layer di poligoni che aggiungi, oltre a ogni risultato di intersezione che generi. Puoi eseguire un’intersezione più volte con coppie di layer diverse, mantenere tutti i risultati sulla mappa contemporaneamente, ed eliminare qualsiasi layer non più necessario senza influenzare gli altri — utile quando devi verificare la sovrapposizione tra un layer di base e diversi layer candidati, uno alla volta.
Esportare i Risultati
Ogni layer può essere esportato singolarmente, oppure puoi esportare tutto in una volta:
- Esportazione di un singolo layer: L’icona di download accanto a qualsiasi layer esporta solo le feature di quel layer come file .geojson autonomo.
- Esporta tutto: Il pulsante "Download All Layers" combina Layer A, Layer B e ogni risultato di intersezione in un’unica FeatureCollection GeoJSON, contrassegnando ogni feature con il layer di provenienza.
- Formato GeoJSON: I file in output sono GeoJSON standard secondo la RFC 7946, apribili direttamente in QGIS, ArcGIS, Google Earth, Mapbox e praticamente qualsiasi altro strumento GIS.
Poiché l’output è GeoJSON semplice, si reimporta senza problemi anche in seguito in questo stesso strumento, o in qualsiasi flusso di esportazione di intersezione shapefile che esegui successivamente in un software GIS desktop.
Passo dopo Passo: Trovare una Sovrapposizione tra Poligoni





Strumenti di Geoelaborazione Correlati
Map tiles © OpenStreetMap contributors and CARTO, Esri (satellite). Intersection math powered by Turf.js. Shapefile parsing by shpjs. Map rendering by Leaflet. All drawing, file reading and intersection calculation is local — no data is uploaded to any server.
