Forum QGIS

Pełna wersja: Zawijanie etykiet na wybranej (środkowej) spacji
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
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?
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.
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.
Działa, dziękuję za pomoc.