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

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.