Aligner les noms de route dans une rangée dans QGIS

14

J'essaie d'aligner autant que possible les noms de route sur une ligne ou une colonne dans QGIS. Je sais que cela peut être fait dans Adobe Illustrator avec un plugin de cartographie, mais je n'ai pas le $$ pour cela.

J'ai essayé quelque chose comme ça mais ça n'a pas semblé aider.

Ceci est un exemple: entrez la description de l'image ici

Ça n'a pas besoin d'être exactement comme ça, mais j'aimerais faire quelque chose de similaire.

Troy Buerge
la source

Réponses:

25

(1) Tracez une ligne comme guide pour la position de l'étiquette.

Dans cet exemple, cette guidelinecouche a un champ id "fid"avec une seule valeur ( 1).

(2) Allez dans le Layer properties | Labels | Placement.

Vous y trouverez Data defined | Coordinate X and Y. Sélectionnez Modifier dans chaque menu déroulant.

entrez la description de l'image ici

(3) Donnez une expression:

x: x(intersection($geometry, geometry(get_feature('guideline', 'fid', '1'))))

y: y(intersection($geometry, geometry(get_feature('guideline', 'fid', '1'))))

entrez la description de l'image ici

(4) Comme étape finale, veuillez masquer la directive. Sélectionnez la couche guide et changez la symbologie en No Symbols.

entrez la description de l'image ici

Kazuhito
la source
Je suis toujours étonné de ce que nous pouvons faire avec les différentes fonctions / expressions. Un autre cas d'utilisation à retenir!
Gabriel C.
@GabrielC. Je ne peux pas être plus d'accord avec vous. Je suis très reconnaissant à l'équipe QGIS Dev pour ces expressions incroyables!
Kazuhito
Hou la la! Merci beaucoup! Encore une question et je vais certainement marquer cela comme ma réponse. Comment puis-je ajouter une deuxième ligne si mes routes vont dans un autre comté et ont besoin de noms différents, ou pour faire les routes qui vont dans l'autre sens?
Troy Buerge
Je sais que cela pourrait être fait en faisant un doublon de la couche routière, en affichant uniquement les étiquettes, et non la symbologie, et en marquant les étiquettes pour "('guideline', 'fid', '2'). Mais je suis sûr qu'il y a une meilleure façon.
Troy Buerge
Merci @TroyBuerge Mais je suis désolé, je ne vois pas de meilleure solution que celle que vous avez dans votre commentaire.
Kazuhito