Aller au contenu

Créer un index des voies dans QGIS#

📆 Date de publication initiale : 13 janvier 2023

Prérequis#

  • QGIS

Intro#

logo QGIS

Nombreuses sont les communes qui disposent d'un plan de ville, qu'elles affichent dans la rue ou qu'elles mettent à disposition sous la forme d'un dépliant, je vous partage ici la manière dont j'ai créé un listing des voies sur une expérimentation de plan de ville. Il y a sans aucun doute des choses à améliorer alors n'hésitez pas à laisser vos propositions ou vos remarques en commentaire.

Commenter cet article


Créer une grille#

La première étape consiste à créer une grille carrée à l'aide des outils vectoriels de QGIS : Vecteur / Outils de recherche / Créer une grille.

Créer une grille

Pour cet exemple, j'ai créé une grille de 200m de côté (à vous d'ajuster la distance en fonction de votre besoin) correspondant à l'emprise de la commune.

Grille

Attribuer un identifiant à chacune des mailles#

Sur la couche correspondant à la grille, ajouter un champ virtuel afin de dénommer chacune des mailles.

Nommage de chaque maille

Identifiant de la maille
--Source : https://gis.stackexchange.com/questions/330760/create-a-grid-with-all-polygons-labelled-index-style
CASE --Condition
  WHEN floor(((maximum("top") - "top" ) / 999) / 26) > 0 --Sur la hauteur : Compte si plus de 26 lignes et donc plus de 26 lettres qui seront utilisées (A-Z)
  THEN char(floor(((maximum("top") - "top" ) / 999) / 25) + 64) --Sur la hauteur : Répétition jusqu'à 26 fois de chacune des lettres de A à Z
  ELSE '' --Si la condition n'est pas vérifiée la valeur est nulle
END --Fin de la condition
|| --Concaténer
char(((maximum("top") - "top") / 999) % 26 + 65) --Sur la hauteur : Répétition des lettres de A à Z sur chacune des lignes - Utilisation du modulo %
|| --Concaténer
to_string(("right" - minimum("left")) / 999) --Sur la a largeur : Permet de déterminer le numéro correspondant aux colonnes (nombre illimité)

Info

Remplacer la valeur 999 par la distance d'espacement de vos mailles (la même qu'à l'étape de création de la grille). Par exemple, si votre maille carrée fait 200m de côté, il faut remplacer 999 par 200.

Nom attribué à chaque maille

Nom attribué à chaque maille

Info

Grâce au champ virtuel, la suppression de mailles inutiles entrainera une réattribution dynamique des numéros de maille. 🪄

Liste des mailles traversées par une voie#

Sur la couche correspondant aux voies, ajouter un champ virtuel qui va permettre de faire le lien entre chacune des voies et les mailles qu'elles croisent.

Calcul des mailles qui croisent les voies

Liste des mailles traversées par une voie
1
2
3
4
5
6
7
8
aggregate(
layer:= 'Grille', --Nom de la couche correspondant à la grille
aggregate:='concatenate', --Méthode d'agrégation
expression:=grille, --Nom du champ à agréger
concatenator:=', ', --Séparateur
filter:=intersects($geometry,geometry(@parent)), --Filtre : Intersection entre la grille et les voies
order_by:= lpad(regexp_substr("grille", '[a-zA-Z]+'),2,0)|| lpad(regexp_substr("grille", '(\\d+)[^\\d]*$'),4,0)--Range les mailles suivant leur codification (Lettre + Numéro)
)

Intégrer l'index des voies dans le composeur#

Maintenant que la donnée est prête, vous pouvez créer une nouvelle mise en page d'impression en ajoutant la table attributaire de vos voies.

Composeur - Sélection des attributs

Composeur - Table attibutaire

Plan de ville


Conclusion#

Voilà une méthode relativement rapide qui permet de générer un listing des voies et les numéros de maille associés, en mode "touché-coulé" à ajouter à vos cartes.

Il est également possible d'exploiter le maillage créé pour afficher dans le composeur d'impression les numéros / lettres en tête de lignes / colonnes ; ceci moyennant quelques règles à mettre en place dans les paramètres d'affichage des étiquettes.

Remerciement

Je remercie mon collègue J. Hanke à la ville de Lunel pour avoir expérimenté cette procédure et proposé cette conclusion.


Auteur·ice#

Florian Boret#

Portrait Florian Boret

Géomaticien/cartographe, je suis arrivé dans le monde de la géomatique en suivant un cursus « professionnalisant » (BTS Géomètre-Topographe, Licence pro GGAT, Master SIGAT). J’ai ensuite travaillé dans un bureau d’études spécialisé dans la production de données d’occupation du sol et puis pour des raisons personnelles je me suis expatrié quelques années au Sénégal où je me suis lancé comme géomaticien indépendant (DATA\WAX).

Depuis mon retour en France, je suis en charge du SIG de la communauté d'agglomération Lunel Agglo.

En dehors de ces expériences, j'ai aussi régulièrement initié de petits projets personnels iGeo-Topo, GIS-Blog.fr, osm2igeo, osm2igeotopo. Aujourd'hui, c’est avec plaisir que j’interviens également comme contributeur de GeoTribu.

Licence Beerware #

Ce contenu est sous licence Beerware (Révision 42).
Les médias d'illustration sont potentiellement soumis à d'autres conditions d'utilisation.

Réutiliser, citer l'article

Tant que vous conservez cette licence :

  • vous pouvez faire ce que vous voulez de ce contenu
  • si vous rencontrez l'auteur/e un jour et que vous pensez que ce contenu vaut le coup, vous pouvez lui payer un coup en retour

Citer cet article :

"Créer un index des voies dans QGIS" publié par Florian Boret sur Geotribu - Source : https://geotribu.fr/articles/2023/2023-01-13_qgis_index_voies/

Commentaires

Afin de favoriser les échanges constructifs, merci de préférer le pseudonymat à l'anonymat. Pour rappel, l'adresse mail n'est pas exposée publiquement et sert principalement aux notifications de réponse. Les commentaires sont automatiquement republiés sur nos réseaux sociaux pour favoriser la discussion. Consulter la page sur la confidentialité et les données personnelles.
Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.

Ce contenu est sous licence Beerware Pictogramme BeerWare