Calcul distance polygone ligne PostGIS
Calculez la distance minimale entre un polygone et une ligne, comme avec ST_Distance, en mode géométrie plane ou en approximation métrique pour coordonnées longitude/latitude. Saisissez des coordonnées simples au format x y, x y.
Résultats
Guide expert du calcul de distance entre polygone et ligne dans PostGIS
Le calcul distance polygone ligne PostGIS est une opération courante dans les systèmes d’information géographique. On la retrouve dans l’analyse de proximité des infrastructures, la planification urbaine, l’évaluation des risques, l’aménagement des réseaux, la détection de conflits spatiaux et la logistique territoriale. Dans sa forme la plus simple, l’objectif est de répondre à une question précise : quelle est la distance minimale entre une géométrie surfacique de type POLYGON et une géométrie linéaire de type LINESTRING ?
Dans PostGIS, cette logique repose souvent sur des fonctions comme ST_Distance, ST_Intersects, ST_DWithin, ST_ClosestPoint et, selon le cas, sur la distinction fondamentale entre geometry et geography. Cette différence est essentielle. En mode geometry, la distance est calculée dans l’unité native du système de coordonnées projeté. En mode geography, elle est généralement mesurée en mètres sur un modèle sphéroïdal ou sphérique, selon la fonction utilisée.
Pourquoi cette opération est stratégiquement importante
Supposons que vous gériez des zones protégées modélisées en polygones et des canalisations modélisées en lignes. Vous devez savoir si un tracé pénètre la zone, s’il la frôle ou s’il reste à une distance réglementaire minimale. Le même besoin apparaît pour des routes proches d’une zone inondable, des câbles proches de servitudes, des pistes forestières proches d’habitats sensibles ou des lignes électriques proches d’espaces urbanisés.
- Contrôle de conformité réglementaire par seuils de distance.
- Détection des intersections pour générer des alertes automatiques.
- Hiérarchisation des objets les plus proches pour l’analyse de risque.
- Préparation d’itinéraires ou de travaux en minimisant les conflits spatiaux.
- Production d’indicateurs métiers exploitables dans des tableaux de bord SIG.
Principe mathématique du calcul
D’un point de vue géométrique, la distance entre un polygone et une ligne est la distance minimale entre tous les points du polygone et tous les points de la ligne. Si la ligne coupe le polygone, traverse son intérieur ou touche son contour, la distance vaut 0. Sinon, il faut rechercher la plus petite distance entre les segments du contour polygonal et les segments de la ligne. C’est précisément cette logique qu’utilise le calculateur ci-dessus.
En pratique, un polygone est composé d’un anneau extérieur et parfois de trous intérieurs. Une ligne est une suite ordonnée de segments. L’algorithme examine les cas suivants :
- Vérifier si un point de la ligne est à l’intérieur du polygone.
- Vérifier si un segment de la ligne intersecte un segment du contour.
- Si aucune intersection n’existe, mesurer la distance minimale segment à segment.
- Retourner la plus petite valeur observée.
Requête PostGIS typique
Dans un environnement base de données, le cas le plus courant consiste à calculer la distance brute entre deux colonnes spatiales. Voici un exemple standard en SQL :
SELECT a.id AS polygon_id, b.id AS line_id, ST_Distance(a.geom, b.geom) AS distance FROM zones a JOIN tracages b ON ST_DWithin(a.geom, b.geom, 500);Cette requête repose sur deux idées très efficaces. D’abord, ST_DWithin limite le volume de comparaison à une fenêtre de proximité, ce qui améliore souvent les performances. Ensuite, ST_Distance retourne la distance exacte sur les géométries retenues. Si vos données sont en coordonnées géographiques comme EPSG:4326, l’usage direct de geometry peut produire une distance en degrés, ce qui est souvent inutilisable pour un rapport métier. Dans ce cas, vous pouvez soit reprojeter vers un système métrique pertinent, soit convertir en geography.
Exemple avec reprojection
SELECT ST_Distance( ST_Transform(a.geom, 2154), ST_Transform(b.geom, 2154) ) AS distance_m FROM zones a, tracages b WHERE a.id = 1 AND b.id = 12;En France métropolitaine, la projection Lambert-93, EPSG:2154, est fréquemment utilisée pour les calculs métriques à l’échelle nationale. Le choix d’une projection adaptée réduit fortement les erreurs d’interprétation.
Geometry ou geography : quel type choisir ?
Le choix entre geometry et geography dépend d’abord de l’échelle, ensuite de la précision attendue, enfin du coût de calcul acceptable. Le type geometry est souvent plus rapide et plus flexible, surtout si les données sont déjà dans une projection métrique locale. Le type geography devient intéressant lorsque les données sont stockées en latitude/longitude et que l’on veut une mesure en mètres sans gérer manuellement une reprojection.
| Critère | Geometry | Geography |
|---|---|---|
| Unité native | Unité du SRID, souvent mètres si projection adaptée | Mètres pour la plupart des fonctions de distance |
| Performance générale | Souvent meilleure sur gros volumes | Souvent plus coûteuse à calculer |
| Cas d’usage idéal | Analyses locales, régionales, réseaux techniques, urbanisme | Données mondiales ou multi-pays en lon/lat |
| Risque d’erreur | Élevé si calcul en degrés sans reprojection | Moins d’erreur d’interprétation pour les distances métriques |
| Fonctions avancées | Très riche, excellente compatibilité topologique | Pratique pour les calculs métriques globaux |
Statistiques utiles sur la précision spatiale
Les écarts de précision viennent moins de PostGIS lui-même que du choix du référentiel. Une base stockée en EPSG:4326 et interrogée sans reprojection produit des distances exprimées en degrés, alors qu’un décideur attend presque toujours des mètres. À titre indicatif, 1 degré de latitude représente environ 111,32 km. En longitude, la valeur varie selon la latitude : à 45 degrés nord, 1 degré de longitude vaut environ 78,85 km. Cette variation explique pourquoi un simple calcul plan sur des degrés peut devenir trompeur.
| Mesure géographique | Valeur approximative réelle | Conséquence pour l’analyse |
|---|---|---|
| 1 degré de latitude | 111,32 km | Relativement stable, mais toujours inadapté à une lecture directe métier |
| 1 degré de longitude à 0 degré | 111,32 km | Équivalent à la latitude à l’équateur |
| 1 degré de longitude à 45 degrés N | 78,85 km | Écart d’environ 29 % par rapport à l’équateur |
| 1 degré de longitude à 60 degrés N | 55,80 km | Écart d’environ 50 % par rapport à l’équateur |
Bonnes pratiques de performance dans PostGIS
Lorsque vous devez traiter des milliers, voire des millions de couples polygone-ligne, la performance devient déterminante. La meilleure approche consiste à filtrer d’abord, calculer ensuite. Un index spatial GiST ou SP-GiST permet d’éliminer la majorité des objets non pertinents avant d’exécuter un calcul précis.
- Créer des index spatiaux sur les colonnes géométriques.
- Utiliser ST_DWithin comme préfiltre.
- Projeter les données dans un SRID métrique adapté à la zone d’étude.
- Éviter les transformations répétées dans les très gros volumes en pré-calculant une colonne projetée si nécessaire.
- Utiliser EXPLAIN ANALYZE pour mesurer le coût réel des requêtes.
Exemple d’index spatial
CREATE INDEX idx_zones_geom ON zones USING GIST (geom); CREATE INDEX idx_tracages_geom ON tracages USING GIST (geom);Interpréter correctement un résultat de distance
Une distance égale à zéro ne signifie pas toujours que la ligne traverse totalement le polygone. Elle peut simplement le toucher sur une frontière. Si vous devez distinguer les cas, il faut compléter ST_Distance avec des prédicats topologiques comme ST_Intersects, ST_Touches, ST_Within ou ST_Crosses. C’est une nuance importante pour les workflows réglementaires.
- Distance = 0 : contact ou intersection.
- Distance > 0 : séparation réelle entre les géométries.
- Distance très faible : vérifier la précision de saisie et les tolérances de numérisation.
- Distance incohérente : contrôler le SRID, la projection et la validité géométrique.
Erreurs fréquentes à éviter
- Calculer ST_Distance sur des géométries EPSG:4326 et croire que la sortie est en mètres.
- Mélanger des SRID différents dans la même requête.
- Oublier que les géométries invalides peuvent perturber certains traitements.
- Utiliser geography sur de très gros volumes sans préfiltre spatial.
- Comparer des distances sans harmoniser les unités d’affichage.
Comment ce calculateur se rapproche du comportement PostGIS
Le calculateur présent sur cette page suit la logique analytique de base utilisée en SIG : détection d’intersection, test d’inclusion et calcul de la distance minimale entre segments. En mode geometry, le résultat est exprimé dans l’unité native des coordonnées saisies. En mode geography, une approximation métrique est réalisée à partir d’une conversion locale de longitude/latitude vers un plan en mètres, ce qui permet une lecture rapide. Pour une production industrielle, PostGIS reste toutefois la référence, notamment grâce à ses fonctions robustes, à sa gestion des types spatiaux complexes et à ses index natifs.
Références et sources d’autorité
Pour approfondir la précision géodésique, les projections et les mesures, vous pouvez consulter des ressources institutionnelles reconnues :
- USGS.gov pour les fondamentaux de cartographie, de coordonnées et d’analyse spatiale.
- NOAA.gov pour les références géodésiques et les données géospatiales liées à la Terre.
- NASA Earthdata pour la qualité des jeux de données spatiaux, la géoréférence et les bonnes pratiques d’interprétation.
Conclusion
Maîtriser le calcul distance polygone ligne PostGIS revient à maîtriser trois choses : le type de données spatiales, le système de coordonnées et l’interprétation métier du résultat. Si vous travaillez localement, une projection métrique bien choisie et des géométries indexées fourniront généralement les meilleurs résultats en performance et en lisibilité. Si vous manipulez des données mondiales en longitude/latitude, le passage par geography ou par une reprojection adaptée devient indispensable. Dans tous les cas, la distance seule n’est qu’une partie de la réponse. Pour une analyse complète, combinez-la avec les relations topologiques et avec un contrôle rigoureux des unités.