Forum QGIS

Pełna wersja: Rzędne wysokościowe uzbrojenia terenu
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam,

Czy jest możliwe takie spreparowanie treści etykiety, aby była ona widoczna w postaci ułamka zwykłego ?

Chodzi o to, że poszczególne elementy uzbrojenia terenu posiadają informację o wysokości nad poziomem morza np spodu kanału deszczowego i jego góry lub dna studni i jej pokrywy.
Obecnie na mapach stosuje się ułamek zwykły, którego licznik oznacza rzędną góry, a mianownik - dołu.

Pozdrawiam
Michał
Witam.
Tak jest to możliwe...ale trochę na około. Zapewne rzędne terenu i dna armatury trzymasz w osobnych kolumnach (polach) np. 'rzędna terenu' i 'rzędna dna'. Ja w tym celu łącze je do jednej kolumny (np. 'rzędne') oddzielając je umówionym znakiem (np. 151.51/150.01). Później w etykietach wybieram wyświetlanie pola na 'rzędne' i w formatowaniu zaznaczam aby zawijał na znaku /. Wówczas będziesz miał postać ułamka zwykłego, co prawda bez kreski, ale jakoś nigdy mi jej nie brakowało.
Jeżeli są inne sposoby chętnie się douczę Wink
Pozdrawiam!
Dzięki wielkie,

Idealnie byłoby, gdyby ta kreska była. Ale opisany sposób też jest rozwiązaniem.

Pozdrawiam
Michał
Można też wpisać w "etykietuj wyrażeniem" następujący ciąg:
case when ( "rzednaterenu" = 0 or "rzednaterenu" is NULL) then '' else "rzednaterenu" || '\n' end || case when ( "rzednadna" = 0 or "rzednadna" is NULL) then '' else "rzednadna" end
Parametr '\n' przerzuca następującą np nim etykiete pod poprzednią. Nie będzie kreski ułamkowej ale przynajmniej nie będziesz miał dodatkowego pola w tabeli.
Dzięki,

Pozdrawiam
Michał
Jak chcesz mieć kreskę jak w ułamku zwykłym, to z automatu z jednej warstwy się raczej nie da, ale można to spreparować w inny sposób.
Do istniejących danych dodajesz kolumnę ze znakiem "_" dla każdego obiektu (dajesz przynajmniej tyle znaków jak długie są wartości rzędnych), następnie tworzysz dwie kopie warstwy, dla których włączasz etykietowanie wybierając odpowiednią kolumnę jako wartość etykiet. Następnie w zakładce 'położenie' ustawiasz sobie wartości tego parametru aby całość z trzech warstw tworzyła wrażenie ułamka. W zakładce 'renderowanie' zaznacz, aby wyświetlał wszystkie etykiety i odznacz aby nie wyświetlał etykiet mogących zakrywać obiekty, wtedy będziesz mieć pewność, że wszystkie etykiety Ci się wyświetlą. Całość zajmuje może z 2 minuty, a efektem finalnym może być coś takiego jak w załączniku.
Dzięki,

Ja te rzędne mam zapisane w jednym polu "napis" w formacie 'xxx.xx\yyy.yy'

Pożądany efekt udało mi się również uzyskać poprzez wstawienie wyrażenia:

replace(napis,'\\','|———|')

do "Etykietuj tę warstwę z", przy czym czcionka to Arial, a znak "-" jest kodem UTF 2014 (Pauza).

W formatowaniu ustawiłem zawijanie na znaku "|", a interlinię na 0.60

Pozdrawiam
Michal
Prościej byłoby utawić podkreslenie czcionki piewszej rzędnej Wink
"Prościej byłoby utawić podkreslenie czcionki piewszej rzędnej Wink"

No, i jak byś chciał to zrobić mając dane w takim formacie jak miał fcs, czyli xxx.xx\yyy.yy w jednej kolumnie? Smile Sposób opisany wyżej, czyli "replace(napis,'\\','|———|') jest szybszy, prostszy i daje większe możliwości panowania nad wyglądem etykiety.