Jak zróżnicować kolor wyświetlania etykiety w zależności od koloru obiektu?


e-book "Mapy w QGIS 3.4" już w sprzedaży

Kolor etykiety można zróżnicować na kilka sposobów. W zależności od tego, jaki efekt chcemy osiągnąć, można zastosować: wyrażenie warunkowe CASE, zmienną @symbol_color bądź użyć nadpisywania opartego na danych (z tabeli atrybutów).

# 1. Przy użyciu wyrażenia warunkowego CASE 

Musimy wiedzieć jakich chcemy użyć kolorów i znać ich kody RGB (lub inne, np. taki poprzedzony #, który możemy skopiować z okna wyboru kolorów).

W poniższym przykładzie wykorzystałam dane z OpenStreetMap zawierające POI (odfiltrowałam trzy kategorie obiektów: bar, cafe i restaurant).

Wyrażenie warunkowe CASE ma następującą składnię:

CASE 
WHEN  „TYP”  =  'bar’  THEN color_rgb(0,176,80)
WHEN  „TYP”  =  'cafe’  THEN color_rgb(255,255,0)
WHEN  „TYP”  =  'restaurant’  THEN color_rgb(255,192,0)
END

Powyżej zakodowałam losowe kolory, ale oczywiście można je odpowiednio dobrać 🙂 Formułę taką wpisujemy w oknie wyrażeń, do którego dojdziemy wybierając opcję nadpisywania opartego na danych dla koloru tekstu etykiety:

Nadpisanie koloru etykiety

Kolor etykiet ustawiony za pomocą wyrażenia warunkowego CASE.

# 2. Gdy chcemy mieć tekst dokładnie w tym samym kolorze co obiekt, który opisuje.

Otwieramy  dokładnie to samo okno wyrażeń dla koloru etykiety. Zamiast „ręcznego” doboru kolorów, wskazujemy (za pomocą zmiennej @symbol_color), że kolor ma być pobierany z danego obiektu.

Kolor etykiety ustawiony zmienną @symbol_color
Uzyskany efekt jest następujący:
Kolor etykiety zgodny z kolorem symbolu

# 3. Gdy chcemy zakodować kolory dla różnych obiektów niezależnie od innych parametrów

Tworzymy nowe pole tekstowe w tabeli atrybutów (nazwałam je kolor) i wpisujemy tam zakodowane kolory dla poszczególnych obiektów. Wskazujemy, aby ta kolumna nadpisywała kolor domyślny.

Kolor etykiety ustawiony przez nadpisywanie oparte na danych.
Na zrzucie ekranu poniżej widać trzy sposoby zakodowania koloru. Widać też, że wszystkie działają. Wszędzie tam, gdzie pole kolor nie ma wpisanej wartości – program pozostawia domyślny kolor etykiety, czyli czarny:

Kolor etykiety zawarty w tabeli atrybutów


Jeśli ten wpis był dla Ciebie interesujący - pokaż go proszę komuś, kogo może zaciekawić, udostępnij w mediach społecznościowych:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.