Qu’est-ce que l’Intersection de Polygones en GIS ?
L'intersection de polygones est une opération centrale d'overlay vectoriel dans les workflows de géotraitement d'intersection GIS : à partir de deux couches de polygones, elle renvoie une nouvelle géométrie ne contenant que la zone commune aux deux entrées. Partout où vous devez trouver des polygones qui se chevauchent en ligne, que ce soit deux zones de zonage, une zone inondable face à une couche de parcelles, ou deux zones de desserte, c'est cette opération qui répond à la question. Cet outil exécute tout le calcul localement dans votre navigateur : dessinez deux formes directement sur la carte, ou importez un fichier GeoJSON ou un Shapefile zippé, et il fonctionne comme un outil autonome de chevauchement GeoJSON KML sans envoyer vos données où que ce soit.
Étape par Étape : Trouver un Chevauchement de Polygones





Cas d’Usage Concrets
Comment Ajouter Vos Couches de Polygones
Il y a deux façons d'amener des polygones dans l'outil avant de lancer une intersection :
- Dessiner sur la carte: Cliquez sur « Draw Polygon », cliquez sur la carte pour placer des sommets, puis double-cliquez, appuyez sur Entrée, ou cliquez sur Finish pour fermer la forme. Répétez pour ajouter un second polygone.
- Importer un fichier: Glissez-déposez un fichier .geojson ou un Shapefile zippé (.zip contenant .shp/.dbf/.shx) n'importe où sur la carte, ou utilisez le bouton Upload. Seules les entités Polygon et MultiPolygon sont lues ; les points et les lignes sont ignorés.
Une fois que vous avez au moins deux couches de polygones, choisissez l’une comme Layer A et l’autre comme Layer B dans la barre latérale, puis cliquez sur « Find Intersection » pour calculer la zone partagée.
Exporter Vos Résultats
Chaque couche peut être exportée indépendamment, ou vous pouvez tout exporter en une fois :
- Export d’une seule couche: L’icône de téléchargement à côté de n’importe quelle couche exporte uniquement les entités de cette couche sous forme de fichier .geojson autonome.
- Tout exporter: Le bouton « Download All Layers » regroupe Layer A, Layer B et chaque résultat d’intersection dans une seule FeatureCollection GeoJSON, en étiquetant chaque entité avec sa couche d’origine.
- Format GeoJSON: Les fichiers de sortie sont du GeoJSON standard conforme à la RFC 7946, qui s’ouvre directement dans QGIS, ArcGIS, Google Earth, Mapbox et pratiquement tout autre outil GIS.
Comme la sortie est du GeoJSON simple, elle se réimporte aussi proprement plus tard dans ce même outil, ou dans n’importe quel workflow d’export d’intersection de shapefile que vous exécutez ensuite dans un logiciel GIS de bureau.
Gérer Plusieurs Couches
Le gestionnaire de couches de la barre latérale conserve dans une seule liste chaque couche de polygones ajoutée, ainsi que chaque résultat d’intersection généré. Vous pouvez lancer une intersection plusieurs fois avec différentes paires de couches, garder tous les résultats sur la carte en même temps, et supprimer n’importe quelle couche devenue inutile sans affecter les autres — utile lorsque vous vérifiez le chevauchement entre une couche de base et plusieurs couches candidates, l’une après l’autre.
Comment Fonctionne l'Algorithme d'Intersection
En coulisses, une intersection de polygones est une opération booléenne d'ensembles sur deux anneaux fermés : la sortie conserve chaque point situé à la fois dans le Polygone A ET dans le Polygone B, et écarte tout le reste. Cela semble simple pour deux formes convexes, mais les limites administratives réelles, les contours de bassins versants et les parcelles de terrain sont presque toujours concaves et contiennent souvent des trous, donc un véritable outil de vérification de chevauchement topologique GIS a besoin d'un algorithme qui gère correctement des formes de polygones arbitraires, pas seulement des formes convexes simples.
Les premiers algorithmes de découpage ne pouvaient pas faire cela de manière fiable. Sutherland–Hodgman (1974) ne produit des résultats corrects que si le polygone de découpage est convexe, ce qui exclut la plupart des données cartographiques réelles. Weiler–Atherton (1977) a amélioré cela en parcourant les contours des deux polygones et en basculant entre eux à chaque point d'intersection, gérant correctement les formes concaves et plusieurs morceaux de sortie, mais peinant sur certains cas dégénérés comme des arêtes partagées ou des anneaux qui se touchent eux-mêmes. L'algorithme de Vatti (1992) a encore généralisé le découpage à l'aide d'une table de bords actifs balayant des lignes horizontales, et est devenu la base de bibliothèques de découpage largement utilisées comme Clipper d'Angus Johnson.
L'Approche par Balayage (Sweep-Line) Utilisée par cet Outil
- Construire une file d’événements: Chaque sommet et chaque extrémité d’arête des deux polygones est placé dans une file, triée de gauche à droite selon la coordonnée X.
- Balayer avec une ligne verticale: Une ligne imaginaire parcourt la file de gauche à droite, pendant qu’une structure d’état suit quelles arêtes du Polygone A et du Polygone B sont actives à cette position X.
- Détecter les croisements d’arêtes: Chaque fois qu’une arête de A croise une arête de B, le balayage calcule le point d’intersection exact et divise les deux arêtes à cet endroit — c’est le cœur mathématique de l’analyse de chevauchement spatial.
- Classer chaque segment: À l’aide de règles d’enroulement (winding rules), chaque segment d’arête résultant est classé comme intérieur ou extérieur à l’autre polygone, de sorte que seuls les segments intérieurs à A ET à B soient conservés.
- Reconstruire les anneaux de sortie: Les segments conservés sont réassemblés en anneaux fermés, en gérant correctement en une seule passe plusieurs zones de chevauchement disjointes et des trous.
Le moteur de cet outil implémente un algorithme booléen de balayage de type Martinez–Rueda, qui s'exécute en environ O((n + k) log n) pour n sommets en entrée et k croisements, et qui est robuste face aux cas dégénérés (arêtes partagées, sommets qui se touchent, anneaux auto-intersectants) qui font échouer les découpeurs plus simples. Avant de lancer le balayage complet sur chaque paire, l'outil effectue aussi une pré-vérification économique par boîte englobante, afin qu'une intersection de géotraitement GIS sur des dizaines d'entités ne perde pas de temps à tester des paires qui ne peuvent manifestement pas se chevaucher.
Les Bibliothèques GIS Derrière l'Overlay de Polygones
Tout outil d'overlay GIS sérieux repose sur l'un d'un petit nombre de moteurs de géométrie computationnelle, et il est utile de savoir lequel fait le travail lorsque vous extrayez la zone commune entre deux polygones dans un workflow professionnel.
- Turf.js / polygon-clipping: Le moteur propre à cet outil. La fonction @turf/intersect de Turf s'appuie sur le paquet npm polygon-clipping, une implémentation en JavaScript pur de l'algorithme de balayage de Martinez–Rueda. Étant du JavaScript pur, elle s'exécute entièrement dans votre onglet de navigateur, sans aller-retour serveur.
- GEOS (Geometry Engine, Open Source): Une bibliothèque C/C++ qui calcule ST_Intersection dans PostGIS et fait tourner l'algorithme natif d'Intersection dans la boîte à outils de traitement de QGIS. Si vous avez déjà lancé une intersection de couches vectorielles côté QGIS, c'est GEOS qui a fait les calculs géométriques en dessous.
- JTS (Java Topology Suite): L'implémentation Java d'origine dont GEOS a été porté. JTS est à la base de GeoTools et du processus d'Intersection dans GeoServer WPS, et sert d'implémentation de référence à laquelle de nombreuses autres bibliothèques se comparent.
- Shapely: La bibliothèque de géométrie de Python, qui s'appuie elle-même sur GEOS. Les data scientists qui font de l'analyse de chevauchement spatial dans geopandas appellent, un niveau plus bas, les mêmes routines GEOS qu'utilisent QGIS et PostGIS.
- shpjs: Gère le côté fichier plutôt que les calculs géométriques : il décode un Shapefile zippé importé (.shp/.dbf/.shx) en GeoJSON entièrement côté navigateur, ce qui permet à cet outil d'accepter un export d'intersection de shapefile en entrée sans import vers un serveur.
Ces cinq outils s'accordent sur les mathématiques sous-jacentes, puisqu'ils résolvent tous le même problème d'overlay booléen. La différence pratique tient à l'endroit où se fait le calcul : GEOS/JTS/Shapely s'exécutent sur un serveur ou une installation SIG de bureau, tandis que le moteur de cet outil, basé sur Turf.js, fonctionne comme un outil de recherche de chevauchement de polygones sur carte directement sur votre appareil — c'est pourquoi aucun import de fichier vers un serveur distant n'est jamais nécessaire ici.
Questions Fréquentes
Personnaliser le Style de Vos Couches
Chaque couche, y compris le résultat de l’intersection, peut être restylée indépendamment :
- Sélecteur de couleur: Cliquez sur la pastille de couleur à côté de n’importe quelle couche dans la barre latérale pour changer instantanément sa couleur de remplissage et de contour.
- Basculer la visibilité: Décochez une couche pour la masquer sur la carte sans la supprimer, utile pour comparer Layer A et Layer B séparément avec le résultat de l’intersection.
- Zoomer sur la couche: Cliquez sur l’icône de cible à côté d’une couche pour ajuster la vue de la carte à ses limites.
Aucun de ces réglages de style n’est enregistré en dehors de votre session — ils contrôlent seulement l’apparence de la carte pendant que vous travaillez.
Outils de Géotraitement Associés
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.
