Nur Großbuchstaben als Beschriftung in QGIS anzeigen?

15

Unter Verwendung von QGIS 2.14 gibt es nun eine regelbasierte Kennzeichnung. Ich möchte Beschriftungen von Städten mit Großbuchstaben anzeigen (z. B. CRAWLEY) und nicht die Beschriftungen von Städten mit Kleinbuchstaben anzeigen (z. B. Faygate)

Die Attributtabelle unterscheidet die verschiedenen Städte nicht von ihrem Namen. Gibt es eine Möglichkeit, dies zu tun?

Bildbeschreibung hier eingeben

Paul G
quelle

Antworten:

20

Hierfür benötigen Sie kein regelbasiertes Styling.

  1. Wählen Sie die Option Beschriftungen für diesen Layer anzeigen (oder, falls gewünscht, regelbasiert) und klicken Sie auf das Symbol Ausdruck. Wechseln Sie wie unten gezeigt zum Funktionseditor .

    Funktionseditor

  2. Erstellen Sie eine neue Datei (oder bearbeiten Sie eine vorhandene) und geben Sie Folgendes ein:

    from qgis.core import *
    from qgis.gui import *
    
    @qgsfunction(args='auto', group='Custom')
    def func(value, feature, parent):
        if value.isupper():
            return value
    
  3. Klicken Sie auf " Laden" und wechseln Sie zur Registerkarte " Ausdruck". Geben Sie Folgendes ein:

    func("fieldName")
    
  4. Dann bewerben Sie alle Änderungen. Ihre Beschriftungen sollten nur noch Großbuchstaben enthalten.


Beispiel :

Vor dem Ausführen der Funktion:

Vor der Funktion

Nach dem Ausführen der Funktion:

Nach der Funktion

Joseph
quelle
8
Anstatt eine eigene Python - Funktion hier verwendet , könnte man auch den eingebauten Ausdruck verwenden"fieldName"=upper("fieldName")
ndawson
3
@ndawson - Nun, das ist eine sehr praktische Funktion, danke! Obwohl Ihr Ausdruck nur einen Booleschen Wert zurückgibt, können Sie stattdessen verwenden if("fieldName" = upper("fieldName"), "fieldName", ''). Ich denke, Sie sollten es
Joseph