¿Elegir solo una línea de contorno para etiquetar en QGIS?

12

¿Es posible seleccionar solo una línea de contorno para el etiquetado?

Tengo numerosas etiquetas para cada línea y preferiré etiquetar solo las principales, como 1000 my1500 m

catindri
fuente
No estoy seguro de si esto es un duplicado, pero ¿puede echar un vistazo a gis.stackexchange.com/q/89501/1297 y gis.stackexchange.com/q/59778/1297 para ver si eso lo acerca a lo que está ¿buscando? Y luego creo que ayudaría a su pregunta si proporcionara algunos detalles sobre lo que intentó y tal vez dónde está yendo mal.
SaultDon

Respuestas:

13

En QGIS 2.6 (quizás también versiones anteriores, no lo sé) puede hacerlo en la sección Propiedades de la Labelspestaña, pestaña, Renderingsección. Alrededor de la mitad de la lista de opciones de representación hay un botón que le permitirá escribir una expresión que definirá la lista de características que en realidad se etiquetarán. Tu expresión sería algo así "Elevation" IN (1000, 1500). Aquí está el botón (en amarillo), tengo este conjunto para etiquetar solo los contornos con un valor de elevación de 32:

ingrese la descripción de la imagen aquí

Dan C
fuente
11

Un enfoque sería cargar la capa de contorno y peinarla. Luego cargue la misma capa nuevamente y aplique un filtro (haga clic con el botón derecho en la capa y baje a 'Filtro ...') Use una expresión de filtro similar a la que se muestra en la imagen. En mi caso, quería contornos mayores a intervalos verticales de 50 metros y el campo que contenía los valores de elevación se llamaba "prop_value".

Cuando se haya cargado la capa filtrada que muestra los contornos principales, aplique etiquetas de contorno y (si es necesario) fortalezca el estilo de línea como se muestra.

ingrese la descripción de la imagen aquí

La expresión del filtro:

("prop_value" % 50) = 0

también seleccionará contornos a intervalos verticales de 50 metros. Funciona con bases de datos Spatialite, no estoy seguro acerca de los shapefiles.

nhopton
fuente
6

Estoy usando este enfoque que hace que el etiquetado y la visualización de las curvas de nivel por condición sean bastante fáciles.

Utilizo las "Propiedades definidas por datos" del ancho del símbolo de línea y los colores de las curvas de nivel con una expresión (vea la captura de pantalla 1) mediante la cual puede aplicar diferentes anchos de línea según condiciones personalizadas y una expresión similar para el etiquetado (vea la captura de pantalla 2).

Simplemente ponga los valores necesarios a las expresiones y eso es todo.

Es decir, si desea ocultar líneas de contorno distintas de 500 m, puede usar esta expresión para las propiedades definidas por datos del símbolo de línea:

CASE WHEN Elevation / 500 - floor(Elevation / 500) =  0 then 
   color_rgba(255,255,255,100) 
else 
    color_rgba(255,255,255,0) 
end

es decir, para etiquetar solo intervalos de 500 m use esta expresión para:

CASE WHEN Elevation /500 - floor(Elevation / 500) = 0 THEN Elevation || ' m' END

es decir, para aplicar un ancho de línea diferente, use una expresión como esta para propiedades definidas por datos:

CASE WHEN Elevation / 100 - floor(Elevation / 100) = 0 THEN 
    0.25 
WHEN Elevation / 50 - floor(Elevation / 50) = 0 THEN 
    0.15 
ELSE 
    0.1 
END

captura de pantalla 1 captura de pantalla 2

Kay
fuente
@catindri, ten cuidado de verificar una respuesta ...
Kay
3

Otra expresión conveniente es "ELEV" LIKE '%00'(paso 100m) o "ELEV" LIKE '%00' OR "ELEV" LIKE '%50'(paso 50m) o "ELEV" LIKE '%0'(paso 10m), etc., donde "ELEV" es mi campo de elevación de datos. La segunda opción solo funciona si 50 es un múltiplo de intervalo (10 mo 5 m ...).

Antonis
fuente