Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Kilometraż
18-06-2017, 20:45,
#1
Kilometraż
Witam
Chciałbym zrobić kilometraż odcinka drogi tak żeby wyświetlało informację co 100 metrów w formacie 1+100, 1+200 itd.
Znalazłem wtyczkę QChainage ale ona nie daje możliwości ustawienia jaki kilometr jest na początku odcinka który chcemy opisać np. 36+350.
Czy macie jakieś inne sposoby żeby to zrobić?
19-06-2017, 11:16, (Ten post był ostatnio modyfikowany: 19-06-2017, 11:48 {2} przez xmaziax.)
#2
RE: Kilometraż
(18-06-2017, 20:45)acipak napisał(a): Witam
Chciałbym zrobić kilometraż odcinka drogi tak żeby wyświetlało informację co 100 metrów w formacie 1+100, 1+200 itd.
Znalazłem wtyczkę QChainage ale ona nie daje możliwości ustawienia jaki kilometr jest na początku odcinka który chcemy opisać np. 36+350.
Czy macie jakieś inne sposoby żeby to zrobić?

Żeby ustawić początek linii na 36+350 musisz w kolumnie c_Meters warstwy punktowej do wszystkich wartości dodać tą wartość początkową.
Możesz to zrobić za pomocą kalkulatora pól.
Dodatkowo możesz zmodyfikować wyrażenie używane do wyświetlania opisów, żeby uzyskać efekt 'km+'
np. na taki:
Kod:
left( c_Meters, ((length(c_Meters)) -3))||'+'||right( c_Meters,3)
To powyższe wyrażenie jest do poprawy, bo dla zerowego km wyświetla tylko dla 0+0, ale ogólnie idee powinieneś zrozumieć.
U mnie wygląda to jak na załączniku.
Pozdrawiam


Załączone pliki Miniatury
   
19-06-2017, 11:28,
#3
RE: Kilometraż
Ja też korzystam z tej wtyczki, a po utworzeniu tej warstwy z kilometrażem dodaję nowe pole tekstowe (nazwijmy je "km") i wpisuję w kalkulatorze formułę:
Kod:
if(
"c_Meters"=0,'0+000',
if(length( "c_Meters") < 4,
    '0+' || "c_Meters",
    if(length("c_Meters") = 4,
        left("c_Meters", 1) || '+' || right("c_Meters", 3),
        if(length("c_Meters") = 5,
            left("c_Meters", 2) || '+' || right("c_Meters", 3),
            if(length("c_Meters") = 6,
                left("c_Meters", 3) || '+' || right("c_Meters", 3),
                'X'
            )
            )
        )
        )
)

Tutaj akurat jest opcja do km 999+900. Jeśli masz jakieś dłuższe drogi, to odpowiednio musisz sobie rozbudować powyższy warunek Wink
19-06-2017, 11:47,
#4
RE: Kilometraż
Lekko zmodyfikowałem swoją formułkę wg powyższego przykładu i już powinna działać dla pełnego zakresu danych.
Kod:
if ("c_Meters"=0,'0+000', if(length( "c_Meters") < 4,    '0+' || "c_Meters",  left( c_Meters, ((length(c_Meters)) -3))||'+'||right( c_Meters,3)))
19-06-2017, 14:15,
#5
RE: Kilometraż
Dziękuję za informację.
20-06-2017, 17:50,
#6
RE: Kilometraż
Jeszcze jedno pytanie.
Jak zrobić etykiety drogi kilometrów żeby jedne nachodziły na drugie (oczywiście różne kolory wielkości itp)
Jak się da przybliżenie to nazwa drogi mieści się pomiędzy kilometrażem ale jak się oddali to nazwa drogi już się nie mieści (załącznik). Da rade dodać jedno i drugie?


Załączone pliki Miniatury
   


Skocz do: