Alinear nombres de carreteras en una fila en QGIS

14

Estoy tratando de alinear nombres de carreteras en una fila o columna tanto como sea posible en QGIS. Sé que se puede hacer en Adobe Illustrator con un complemento de mapeo, pero no tengo el $$ para eso.

Intenté algo como esto, pero no pareció ayudar.

Esto es un ejemplo: ingrese la descripción de la imagen aquí

No necesita ser exactamente así, pero me gustaría hacer algo similar.

Troy Buerge
fuente

Respuestas:

24

(1) Dibuje una línea como guía para la posición de la etiqueta.

En este ejemplo, esta guidelinecapa tiene un campo de identificación "fid"con un solo valor ( 1).

(2) Ir a la Layer properties | Labels | Placement.

Ahí lo encontrarás Data defined | Coordinate X and Y. Seleccione Editar en cada menú desplegable.

ingrese la descripción de la imagen aquí

(3) Da una expresión:

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

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

ingrese la descripción de la imagen aquí

(4) Como paso final, oculte la directriz. Seleccione la capa de guía y cambie la simbología a No Symbols.

ingrese la descripción de la imagen aquí

Kazuhito
fuente
Siempre me sorprende lo que podemos hacer con las diferentes funciones / expresiones. ¡Otro caso de uso para recordar!
Gabriel C.
@GabrielC. No podría estar mas de acuerdo contigo. ¡Estoy muy agradecido al equipo de desarrollo de QGIS por estas increíbles expresiones!
Kazuhito el
¡Guauu! ¡Muchas gracias! Una pregunta más y definitivamente lo marcaré como mi respuesta. ¿Cómo agrego una segunda línea si mis caminos van a otro condado y necesitan nombres diferentes, o para hacer los caminos que van en sentido contrario?
Troy Buerge el
Sé que podría hacerse haciendo un duplicado de la capa de la carretera, mostrando solo etiquetas, y no simbología, y marcando las etiquetas para "('guía', 'fid', '2'). Pero estoy seguro de que hay una mejor manera.
Troy Buerge
Gracias @TroyBuerge Pero lo siento, no puedo pensar en una solución mejor que la que tienes en tu comentario.
Kazuhito