Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Kilometraż
18-06-2017, 08:45 PM
Post: #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ć?
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
19-06-2017, 11:16 AM (Ten post był ostatnio modyfikowany: 19-06-2017 11:48 AM przez xmaziax.)
Post: #2
RE: Kilometraż
(18-06-2017 08:45 PM)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
   
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
19-06-2017, 11:28 AM
Post: #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
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
19-06-2017, 11:47 AM
Post: #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)))
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
19-06-2017, 02:15 PM
Post: #5
RE: Kilometraż
Dziękuję za informację.
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
20-06-2017, 05:50 PM
Post: #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
   
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
Odpowiedz 


Skocz do: