15 votos

¿Mostrando sólo texto en mayúsculas como etiquetas en QGIS?

Usando el QGIS 2.14 y ver que ahora hay un etiquetado basado en reglas. Deseo mostrar las etiquetas de las ciudades que tienen letras mayúsculas (por ejemplo, CRAWLEY) y no mostrar las etiquetas de las ciudades con letras minúsculas (por ejemplo, Faygate)

La tabla de atributos no distingue las diferentes ciudades aparte de su nombre. ¿Hay alguna manera de hacer esto?

enter image description here

20voto

Mue Puntos 2469

En realidad, no se necesita un estilo basado en reglas para esto.

  1. Seleccione el Mostrar etiquetas para esta capa (o basado en reglas si lo prefiere) y haga clic en la opción Expresión y vaya a la sección Editor de funciones como se muestra a continuación.

    Function editor

  2. Cree un nuevo archivo (o edite uno existente) e introduzca lo siguiente:

    from qgis.core import *
    from qgis.gui import *
    
    @qgsfunction(args='auto', group='Custom')
    def func(value, feature, parent):
        if value.isupper():
            return value
  3. Haga clic en Carga luego ir a la Expresión y escriba lo siguiente:

    func("fieldName")
  4. Entonces Aplicar todos los cambios. Sus etiquetas deben contener ahora sólo las que son todas mayúsculas.


Ejemplo :

Antes de ejecutar la función:

Before function

Después de ejecutar la función:

After function

8 votos

En lugar de utilizar una función personalizada de python, también podría utilizar la expresión incorporada "fieldName"=upper("fieldName")

3 votos

@ndawson - Pues es una función muy útil, ¡gracias! Aunque tu expresión sólo devuelve un booleano, podrías utilizar en su lugar if("fieldName" = upper("fieldName"), "fieldName", '') . De cualquier manera, creo que deberías publicarlo como un respuesta ;)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X