Digital Geography

7. November 2013

Labels in QGIS 2.0: selektiv beschriften

Da in der QGIS-Version 2.0 die Funktion „nur gewählte Objekte beschriften“ nicht mehr existiert, soll ein Workaround nur bestimmte Objekte des Shapefiles beschriften, ohne ein neues Shapefile exportierten zu müssen.

Hierfür wird letztendlich nur das zu beschriftende Shapefile benötigt.

Möglichkeit 1 – nur bestimmte Werte  über einen Ausdruck beschriften

In QGIS 2.0 gibt es in den Layereigenschaften, im Tab Beschriftungen –> Darstellung –> Beschriftungsoptionen (engl.: Labels –> Rendering –> Label options) den  Punkt „Datendefiniert/Beschriftung anzeigen“. Hierfür muss die Beschriftung mit dem jeweiligen Attribut, in dem die Beschriftung enthalten ist, aktiviert sein.  Mit einem Klick auf „Bearbeiten…“ im Bereich Ausdruck öffnet sich das Bedingungsfester, das einigen z. B. vom Feldrechner bekannt sein dürfte.

Hier  wird nun der Ausdruck definiert, der als Bedingung für die Beschriftung dienen soll. Beispielsweise:
„build_no“ > 10
Nun werden nur die Polygone beschriftet, deren Werte in der Spalte build_no größer als 10 sind. Hier können auch komplexere Bedingungen mit weiteren Feldern definiert werden, je nachdem welche Objekte beschriftet werden sollen.

Möglichkeit 2 – nur bestimmte Objekte über eigenes Attribut beschriften

Es kann jedoch passieren, dass die zu beschriftenden Objekte sehr zufällige Attributwerte haben, die nicht klar zu definieren sind. Um diesen Fall darzustellen, wurde ein neues Attribut label angelegt, welches als Integer Typ mit einer Länge von 1 definiert wurde.  Die Objekte die nun beschriftet werden sollen, erhalten beim Digitalisieren oder nachträglich über die Attributtabelle den Wert „1“. Der Ausdruck bei der datendefinierten Beschriftungsoption muss dabei lediglich auf
„label“ = 1
gesetzt werden. Nun werden alle Objekte angezeigt, die den Wert 1 im Feld label enthalten.

Für die schnelle Vergabe der Werte kann der Feldrechner über die Attributtabelle genutzt werden. Die zu beschriftenden Objekte werden ausgewählt und im Feldrechner wird die Option „Nur ausgewählte Objekte aktualisieren“ ausgewählt. Es soll ein vorhandenes Feld erneuert werden – und zwar das Feld label. Der Ausdruck ist auch hier „label“=1, da alle markierten Objekte den Wert 1 im Attribut label zugewiesen bekommen sollen, und schon sind alle markierten Objekte mit dem entsprechenden Wert versehen.

Optional –Checkboxen statt Eingabezeile nutzen

Möchte man schon beim Digitalisieren die Objekte als „zu beschriftend“ oder nicht definieren, aber nicht jedes Mal den Wert 1 oder 0 eintippen, kann das Feld label als Checkbox definiert werden. In den Layereigenschaften unter dem Punkt Felder, kann in der Spalte Bearbeitungselement für das jeweilige Feld (hier label) statt Eingabezeile Kontrollkästchen gewählt werden. Die Standardwerte können hierbei unverändert bleiben. Hakt der Nutzer nun die Checkbox an, wird eine 1 in die Attributtabelle geschrieben, bleibt sie nicht angehakt, erhält das Objekt im Feld label den Wert 0.

Beim Digitalisieren erhält man nun das Kontrollkästchen zum schnellen Aktivieren der Beschriftung und auch in der Attributtabelle kann mit einem Doppelklick auf das jeweilige Feld der Wert per Checkbox gesetzt werden. Natürlich können Objekte auch weiterhin per Feldrechner mit dem Wert 1 versehen werden ohne unzählige Checkboxen anzuhaken. Je nach Datensatzgröße und Digitalisierungsvorgehen kann die Arbeit somit beschleunigt werden.