Forum QGIS

Pełna wersja: etykiety wielowierszowe 1.8
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Kalkulator pól nie przyjmuje rozwiązania z http://my.opera.com/p0cisk/blog/2010/04/...uantum-gis
czyli "Jeśli chcemy aby kolejna linia znalazła się niżej otwieramy apostrof i przechodzimy do nowej linii za pomocą Entera.".
Słowo wewnątrz apostrofów z enterem koloruje jak bez enterów.

Jak teraz (1.8 win7) zrobić kalkulatorem etykietę wielowierszową?
Ja "Enter" w etykietach robię znakiem '\n' (z tzw. backslashem, nie tym normalnym Wink ).

Czyli przykład z bloga powyżej wyglądałby tak:
"Rzeka" ||
'\nDługość: ' || "dlugosc" || ' km' ||
'\nRząd: ' || "rzad"
(28-08-2013, 08:41)Binko napisał(a): [ -> ]Ja "Enter" w etykietach robię znakiem '\n' (z tzw. backslashem, nie tym normalnym Wink ).

O, właśnie tego \n nie mogłem sobie przypomnieć, dźwięki piękne.

Znaczy 'na już' poradziłem sobie przepuszczając warstwę przez 1.7.4, no ale ileż można skakać między wersjami.
A czy wiecie może, jak poradzić sobie z utworzeniem etykiety w formie ułamka, gdzie "nazwa", "opis" i "liczba" stanowią odrębne kolumny tabeli atrybutów?

[attachment=296]
Po części już się zastanawiano tutaj: http://forum.quantum-gis.pl/thread-1135....t=etykiety

Tylko u Ciebie wygląda to jakby to były indeksy - górny i dolny - do nazwy...

Na razie nie mam pojęcia jak coś takiego zrobić Smile
No właśnie pole "nazwa" komplikuje sprawę. Indeksy górny/dolny też nie wchodzą w grę, bo "liczba" i "opis" mają być nad sobą.
Na upartego coś tam da się wykombinować, mi przyszło do głowy, żeby mieć tą warstwę wczytaną dwukrotnie i na jednej ustawić właściwy symbol i pole "nazwa". Pole "nazwa" musi mieć odpowiednie przesunięcie, najlepiej oparte na danych - długości licznika lub mianownika ułamka (w zależności od tego co jest dłuższe, jeśli raz licznik a raz mianownik to trzeba będzie użyć też wyrażenia warunkowego).
Na zdublowanej warstwie ustawiłem jako symbol kreskę i w etykietach wyświetliłem licznik i mianownik. Cała zabawa poległa będzie na ustawieniu właściwych przesunięć symbolu i etykiet i długości kreski. Wydaje mi się, że trzeba używać długości odpowiednich pół, w przykładzie na zrzucie próbowałem to wyregulować długością licznika i pierwiastkiem z niej, ale jak widać nie do końca to wyszło.
Problem będzie przy nachodzeniu tych etykiet na siebie.
[attachment=297]
Wyszło nienajgorzej, ale ja mam warstwę poligonową. Nie da się ustawić kreski jako symbolu. Kombinowałem z podkreśleniem tekstu w liczniku, ale wówczas mianownik też mi się podkreślał i nie mogę sobie z tym poradzić. Domyślam się, że być może pomogłyby ustawienia w okienku z którego Ty wyprowadziłeś czerwoną strzałkę objaśnienia. Niestety nie wiem do czego konkretnie służy. Zaznaczam w nim tylko warstwę "opis" i daję podkreślenie czcionki, ale chyba nie o to chodzi. Jeśli wstawię dodatkową kolumnę z kreską (podkreślnik), i dam w jednym wierszu, to wychodzi za nisko w stosunku do "nazwy". Gdyby dało się formatować osobno licznik i mianownik, to byłoby super, ale brak mi już pomysłu.

Swoją drogą, to jak wyrównałeś do środka tekst w liczniku i mianowniku? Domyślnie równane jest do lewej, a nie widzę takiej opcji formatowania tekstu
Mam QGIS 2.14

Z poligonami też da się i to wyszło mi nawet ładniej i prościej (tylko dwa razy zastosowałem wartości oparte o danych - to ta czerwona strzałka z poprzedniego posta). W przykładzie wykorzystałem trzykrotnie wczytaną warstwę gmin z OpenStreetMap. Czcionki powinny być raczej małe, zastosowałem DejaVu Sasns 6.
Wyszło tak:
[attachment=298]

1. Licznik.
a) Etykiety -> formatowanie -> wyrównanie -> do środka
b) Etykiety -> położenie (patrz obrazek), odsunięcie od centroidu, zaznaczona opcja "całego poligonu", kwadrant - "górny środek", przesunięcie Y=-0,5
[attachment=299]
c) Etykiety -> renderowanie -> zaznaczyć dwie opcje: wyświetl wszystkie etykiety (razem z nachodzącymi na siebie) i etykietuj każdą część obiektu wieloczęściowego.

2. Kreska i mianownik.
a) Kreska styl: Styl -> wypełnienie:centroid, prosty znacznik, pionowa kreska (obrót o 90°), bez przesunięcia
b) Rozmiar kreski w ustawieniach symbolu: rozmiar -> nadpisywanie oparte na danych (czerwona strzałka z poprzedniego posta) -> "Zmień..." -> wyskakuje okienko, ja wpisałem: length( "nazwa-kolumny-z-nazwa-gminy" )+5
- u mnie takie wyrażenie pasuje idealnie ale u ciebie nie musi (inna czcionka itp.)
c) Etykiety -> położenie, odsunięcie od centroidu, zaznaczona opcja "całego poligonu", kwadrant - "dolny środek", przesunięcie Y=0,5


3. OSM ID (u ciebie jest to "nazwa").
a) Ustaw pusty styl (bez obrysu, bez wypełnienia)
b) Etykiety -> położenie, odsunięcie od centroidu, kwadrant - "lewy środek", przesunięcie X,Y -> nadpisywanie oparte na danych -> "Zmień..." -> '-' ||(( length( "nazwa-kolumny-z-nazwa-gminy" ) / 2)+3) || ',' || '0'
- to wyrażenie sprawia, że wartość X będzie przesunięta o długość nazwy gminy podzieloną przez 2, do tego doda 3 a na początki wstawi znak "minus" (przesunięcie będzie w lewo), Y pozostaje bez przesunięcia. Np. gmina Tuszyn to 12 znaków (ze spacją), więc otrzymamy X=-9 i Y=0. Możliwe, że u ciebie będzie trzeba trochę inaczej.
c) Reszta jak przy liczniku.

W położeniu trzeba jeszcze wszędzie wyłączyć opcję "Wymuś punkt wewnątrz poligonu"

Aktualizacja:
Zapomniałem dodać, przykład opiera się na milimetrach, więc jak masz gdzieś włączone jednostki mapy to zmień na milimetry.