Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Zawijanie etykiet na wybranej (środkowej) spacji
26-07-2017, 14:47,
#1
Zawijanie etykiet na wybranej (środkowej) spacji
Jak wymusić zawijanie długich (wielowyrazowych) etykiet na środkowej spacji?
Chcę to zrobić opcją Etykiety > Formatowanie > Wielowierszowe > Oparte na danych.
Trzeba zliczyć wszystkie spacje z pola (niech będzie "name"), potem trzeba je podzielić przez 2 i zaokrąglić do 0 miejsc po przecinku. Problem polega na tym, że nie wiem jak zliczyć spacje wyrażeniem.

Problem kolejny: jak zmusić QGIS, żeby zawijał etykietę tylko na tej jednej spacji?
01-08-2017, 09:58, (Ten post był ostatnio modyfikowany: 01-08-2017, 10:10 {2} przez kamilwydra.)
#2
RE: Zawijanie etykiet na wybranej (środkowej) spacji
Witam.

Proponuję Ci to łatwiej zrobić. W etykietowaniu wprowadź następującą formułę:

replace(name, ' ', '\n')

Zamieni Ci to wszystkie spacje na znak końca wiersza.


Edit: Przeoczyłem, że chcesz zamieniać tylko i wyłącznie środkową spację. W takiej sytuacji trzeba było by dłużej nad tym usiąść, a na to niestety czasu nie mam.
08-09-2017, 09:50,
#3
RE: Zawijanie etykiet na wybranej (środkowej) spacji
Można zdefiniować własną funkcję

Kod:
from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def median_space(value1, feature, parent):
    a = value1.split()
    v = len(a)/2
    return ' '.join(a[0:v]) + '\n' + ' '.join(a[v:])

Po zapisaniu będzie dostępna w grupie Custom pod nazwą median_space.
20-09-2017, 19:46,
#4
RE: Zawijanie etykiet na wybranej (środkowej) spacji
Działa, dziękuję za pomoc.


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zawijanie tekstu w tabeli atrybutów wycinka 3 11 708 12-01-2018, 14:04
Ostatni post: Italiano

Skocz do: