
Le système de localisation à partir de points kilométriques (PK) ou de points hectométriques est couramment utilisé par les gestionnaires de réseau. Si pour les grands réseaux ( routes, voies ferrées, cours d’eau), la localisation des points kilométriques a été faite de façon officielle par les gestionnaires, pour des projets plus locaux il sera parfois utile de créer des PK ou des PH.
Dans cet exemple nous allons voir comment créer des points kilométriques (pk) et des points hectométriques le long d’un itinéraire en 2D et en 3D avec des outils qgis directement accessibles dans la boite à outils de traitement.
vérifier l’orientation de l’itinéraire
Les points kilométriques ou hectométriques sont localisés sur une ligne à partir du premier sommet de construction de la polyligne. Avant de calculer la position des pk, il faudra vérifier l’orientation de la ligne. Pour cela la méthode la plus simple consistera à modifier la symbologie.
Ouvrir le panneau de propriétés de la couche et sélectionner Symbologie.
Cliquer sur le bouton + (1) pour ajouter une ligne de symboles.
Dans la liste déroulante Type de symbole choisir Ligne de symboles. (2)
Cocher uniquement l’option Sur le premier sommet (3)

Un point apparaît alors sur le premier sommet de la polyligne.

Si on veut calculer les PK de la gauche vers la droite, il faudra réorienter la ligne. Pour cela mettre la couche en édition et dans la barre d’outils de numérisation avancée sélectionner l’outil Inverser les lignes .
Cliquer sur la polyligne et sauvegarder les modifications.
Calcul en 2d
Calcul de points kilométriques
Si le territoire est relativement plat on pourra calculer les points kilométriques uniquement en 2D. Pour cela on utilisera l’outil Points le long d’une géométrie.
Ouvrir la boite à outils de traitements (Ctrl+Alt+T)
Saisir le nom de l’outil dans la zone de recherche.
Dans le panneau de configuration de l’outil sélectionner le nom de la couche d’itinéraire. (1)
Dans la zone distance entrer la valeur 1000. (2)
Donner un nom à la couche ou les PK seront enregistrés sans oublier de vérifier dans quel dossier les fichiers seront enregistrés. (3)

Le résultat se présentera de la façon suivante :
– un premier point sera placé au début de l’itinéraire et correspondra au PK0
– un point sera ensuite placé tous les 1 km.
Dans la table d’attributs de la couche des PK on retrouvera l’identifiant de l’itinéraire (colonne ID) la distance du point par rapport à l’origine, et l’angle du segment sur lequel le point est positionné. Les valeurs d’angle sont calculées à partir d’une origine 0 située au nord et en se déplaçant dans le sens horaire.

Calcul de points hectométriques
La méthode présentée ci-dessus pourra être réutilisée pour calculer la position des points hectométriques. Toutefois si on veut calculer des points hectométrique pour chaque tronçon kilométrique, il faudra auparavant découper l’itinéraire en tronçons de 1 km. Pour cela on pourra utiliser l’outil Division de lignes par longueur maximale.
Sélectionner la couche à découper (1)
Fixer la longueur des tronçons (2)
Enregistrer le résultat dans un nouveau fichier (3)

Mettre à jour le champ ID afin que chaque tronçon obtenu après le découpage soit identifié par un numéro unique.

Avec l’outil Points le long d’une géométrie créer les points hectométriques (avec une distance de 100 m) sur chaque tronçons.
Dans la table d’attributs de la couche de points hectométriques, on retrouvera l’identifiant du tronçon (ID), la distance et l’angle.

calcul en 3d
Transformer une polyligne 2D en polyligne 3D
Pour faire des calculs qui tiennent compte de la pente du terrain naturel, il faudra transformer la polyligne 2D en polyligne 3D.
Pour cela, il faut disposer d’un MNT (modèle numérique de terrain) au format raster. Dans cet exemple nous utiliserons le MNT RGE alti à 5 m téléchargeable ici.

Dans la boite à outil de qgis, recherche l’outil Draper.
Sélectionner la couche contenant la ou les polylignes (1)
Sélectionner le MNT (2)
Donner un nom à la couche en sortie (3)

Pour vérifier que la polyligne a bien été convertie en objet 3D, on pourra mettre la couche en édition, puis activer l’option Afficher l’éditeur de sommets :

En cliquant sur la ligne avec l’outil d’édition de sommet on verra alors apparaître un tableau avec les coordonnées x, y et z de chaque sommet.

Afin de voir la différence entre une polyligne 2d et une polyligne 3D on peut calculer la longueur en 2D avec la fonction $length et la longueur en 3D avec la fonction length3D(@geometry).
Dans ce exemple on remarque une différence de 44 mètres pour un itinéraire d’environ 3 kilomètres.

Calculer des PK en tenant compte des dénivelés
Dans la boite à outil de traitement de qgis recherche l’outil v.segment
L’outil v.segment est un outil GRASS. S’il n’apparaît pas dans la liste des outils disponibles dans la boite à outils, il faudra vérifier dans la liste des extensions installées que GRASS GIS provider est bien activé.
Pour fonctionner, l’outil v.segment a besoin de 2 paramètres :
– une couche avec une ou des polylignes 3D
– un fichier enregistré au format texte avec 4 colonnes séparées par des espaces et similaire à cet exemple :

La première colonne contient la lettre P pour indiquer qu’il s’agit de points.
La deuxième colonne correspond au numéro identifiant des points qui seront créés.
La troisième colonne est le numéro identifiant de la polyligne.
La quatrième correspond à la distance du point par rapport à l’origine de la polyligne.
Ouvrir le panneau de configuration de l’outil v.segment.
Sélectionner le couche itinéraire en 3D.
Sélectionner le fichier texte (cf description précédente).
Donner un nom à la couche en sortie.
Puis cliquer sur Exécuter.

Les PK calculés sur une polyligne 3d avec v.segment ne seront pas placés au même endroit que les PK calculés sur une polyligne 2d comme le montre l’image ci-dessous :
- en rouge PK calculés en 2D
- en bleu PK calculés en 3D

Projeter des points sur un axe et calculer leur PK
Si des points ont été localisés le long d’un itinéraire, comme par exemple des ouvrages le long d ‘un réseau routier ou le long de cours d’eau ou bien des sites à visiter ou des équipements le long d’un sentier de découverte on pourra calculer la position de ces points par rapport à l’origine de l’itinéraire en utilisant successivement un outil de projection des points sur l’itinéraire, puis de calcul distance entre les points projetés et l’origine de la polyligne.
Projeter des points sur une polyligne
Dans l’exemple ci-dessous, les points noirs identifiés par des lettres correspondent à des points remarquables pour lesquels on veut calculer un PK.

L’outil Accrocher les géométries à la couche permettra de projeter les points sur l’itinéraire.
Sélectionner le nom de la couche qui contient les points à projeter.
Sélectionner la couche correspondant à l’itinéraire.
Fixer une tolérance. Dans cet exemple la valeur a été fixée à 100 ce qui signifie que tous les points situés à moins de 100 mètres de la lignes seront pris en compte.
Choisir l’option Privilégier le point le plus proche sans ajout de sommet.
Donner un nom à la couche en sortie.

Dans la nouvelle couche, les points ont été projetés sur la ligne.

Calculer la distance par rapport à l’origine de la polyligne.
Pour calculer la distance des points projetés par rapport à l’origine le la polyligne on utilisera un outil d’analyse de réseau : Chemin le plus court de la couche vers le point.
Sélectionner la couche d’itinéraire (1)
Choisir l’option Le plus court (2)
Sélectionner la couches des points remarquables projetés (3)
Entrer les coordonnées du point d’origine de la polyligne (4). Pour éviter de saisir les coordonnées au clavier, cliquer sur le bouton situé à droite de la zone (bouton avec 3 points noirs) pour récupérer les coordonnées en cliquant directement à l’extrémité de l’itinéraire.
Donner un nom à la couche résultat. (5)

Le résultat obtenu se présente sous la forme d’une couche de polylignes correspondant aux chemins entre les points projetés et le point d’origine de la polyligne. Mais ce qui nous intéresse de trouve dans la table d’attributs de cette couche :
- ident = identifiant du point
- start = coordonnées du point (départ)
- end = coordonnées de l’origine (arrivée)
- cost = distance entre le point et l’origine

On pourra joindre cette table d’attributs avec le fichiers des points remarquables, grâce à l’identifiant.
placer des points sur un axe a partir de leur PK
Pour placer des points sur une polyligne à partir d’une distance connue, on utilisera la fonction Grass v.segment.
L’utilisation de cette fonction est décrite ici