Makina Blog

Le blog Makina-corpus

La segmentation dynamique


Introduction au référencement linéaire et ses applications

La segmentation dynamique, ou système de référencement linéaire, est une notion de géomatique qui consiste à localiser des objets à partir d'un réseau de lignes.

Les géométries sont décrites à l'aide d'une mesure le long des lignes du réseau, et lorsqu'un segment du réseau est modifié, celles-ci sont mises à jour automatiquement.

Cette notion est bien connue des utilisateurs de ArcGIS, mais nous allons la décortiquer ici, afin de pouvoir détailler, par la suite, son implémentation dans Geotrek avec PostGIS.

Domaines d'applications

Le cas d'application le plus évident concerne la voirie, pour décrire les équipements le long des routes, leur revêtement ou les panneaux de signalisation.

Pareillement, les chemins de fer, les voies navigables, les pipelines etc. peuvent être modélisés de cette manière pour leur associer des objets ou attributs le long des lignes.

Grâce au référencement linéaire, certaines collectivités gèrent également le positionnement des arbres, mais aussi l'état des digues, ou bien les repères de crues sur les rivières.

Dans le cadre de Geotrek, c'est toute la gestion de sentiers qui est concernée. Les équipements, les chantiers, les statuts fonciers, les droits de passage, la nature des chemins, le patrimoine, les itinéraires de randonnées, ou encore la signalétique sont modélisés en fonction des chemins qui composent le réseau de tronçons.

Principaux avantages

  • Aucune redondance des géométries, seule celle du réseau est saisie, les autres sont calculées ;
  • Association d'attributs à la totalité ou une partie d'un linéaire ;
  • Liens automatiques entre les objets grâce à leur superposition vis-à-vis du réseau ;
  • Garantie de la cohérence géométrique et topologique entre les tronçons et tous les objets ;

Modélisation

Chemin Début Fin Décalage
p1 0.10 0.95 0
p1 0.75 0.75 30

 

Les positions (ou jalons) sont exprimés en pourcentage. Lorsque le début est supérieur à la fin, on emprunte le tronçon à l'envers. Lorsque le début est égal à la fin, il s'agit d'un ponctuel.

Le décalage (distance à la ligne) est exprimée en mètres, et prendre une valeur négative si l'élément est à gauche du tronçon. L'angle est toujours de 90 degrés.

Nous n'avons donc besoin que de trois tables :

  • Réseau de linéaires
  • Table d'attributs (évènement)
  • Liste des associations et positions
 

Prérequis

Le réseau qui sert de référentiel doit être propre, cohérent du point de vue topologique.

Lorsque deux tronçons se croisent, ils doivent être découpés à l'intersection. Et ce, bien entendu, aussi bien lors de l'ajout que de la modification.

Nous avions détaillé ce point dans un article il y a quelques mois

Mise en place

Plusieurs déclencheurs doivent être mis en place (par ordre de difficulté) :

  • « snapping » des extrémités des tronçons lors de la creation ou la modification ;
  • calcul de la géométrie résultante à partir des positions, lors de la création ou la modification de celles-ci ;
  • découpage des tronçons aux intersections lors de la creation ou la modification ;
  • répercution des positions sur tous les tronçons lorsqu'un objet est positionné sur une intersection ;
  • recalcul des positions impactées après découpage des tronçons aux intersections ;
 

Ainsi qu'une série d'outils pour exploiter l'ensemble :

  • détection des objets superposés sur le linéaire, à partir des positions ;
  • transformation d'un point (lat, lng) en une distance et une position ;
  • transformation d'un ligne en une liste de positions sur le réseau ;
  • fusion des objets adjacents sur le réseau si leurs attributs sont identiques ;
 

Difficultés

Recalcul des positions après découpage

La plus grande difficulté consiste à recalculer les positions après le découpage. Dans Geotrek, nous avons une batterie de tests qui s'assure du bon fonctionnement de cet aspect précisemment.

Les cas particuliers

Boucles et aller-retours

 

Mises à jour

Lorsque la géométrie du tronçon change, les objets décrits à partir de celui-ci seront déplacés.

En fonction des règles métier, et de la gestion de l'historique, il faut éventuellement adapter le comportement des mises à jour.

Par exemple, si le chemin a bougé, suite à un éboulement, alors on va souhaiter que les barrières de protection suivent le nouveau tracé. En revanche, on ne va pas forcément mettre à jour les géométries des interventions de bétonage qui avaient eu lieu sur l'ancien tracé.

Pour les ponctuels, on a l'équivalent. On peut souhaiter que les tables de pic-nic soient déplacées au bord du nouveau tracé, car c'est le cas dans la réalité, en revanche, on ne va pas vouloir déplacer le pylone électrique qui lui est resté en place après l'éboulement.

Limitations

Avec un angle fixé à 90 degrés, nous nous heurtons à une limitation : la possibilité d'associer des points aux extrémités du réseau :

Avec PostGIS

Nous détaillerons certaines implémentations avec PostGIS dans un prochain article ! Pour les curieux et les plus motivés, le code de Geotrek pour cette partie est en ligne :)

Actualités en lien

Image
Capture d'une partie de carte montrant un réseau de voies sur un fond de carte sombre. Au centre, une popup affiche les information de l'un des tronçons du réseau.
28/02/2024

Géné­rer un fichier PMTiles avec Tippe­ca­noe

Exemple de géné­ra­tion et d’af­fi­chage d’un jeu de tuiles vecto­rielles en PMTiles à partir de données publiques.

Voir l'article
Image
Encart article Protomaps : Illustration d'une portion de pyramide de tuiles
14/02/2024

Protomaps, stockez vos pyramides de tuiles plus simplement

Présentation d'un nouveau format de stockage de tuiles cartographiques

Voir l'article
Image
Article : Servir sa couche raster QGIS en tuiles sans effort avec le format PMTiles
25/01/2024

Servir sa couche raster QGIS en tuiles sans effort avec le format PMTiles

Cet article vous présente une approche permet­tant de tuiler et de publier une couche raster fabriquée avec QGIS.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus