Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
17-11-2015, 08:25 AM (Ten post był ostatnio modyfikowany: 17-11-2015 08:26 AM przez karliTToO.)
Post: #1
Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
Witam,

wprowadzam dane liniowe i chciałbym, żeby długość danej lini automatycznie była dodana do tabeli atrybutów. Jest taka możliwość? Wytłumaczy ktoś jak to zrobić? Wolałbym aby długość sama została wprowadzona do tabeli atrybutów do danego wiersza, załóżmy z dokładnością 2 cyfr po przecinku. Będe musiał każdą linie mierzyć linijką i wprowadzać długość recznie?
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
18-11-2015, 10:37 AM
Post: #2
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
Jeśli zależy Ci na sposobie bardzo automatycznym (kończysz linię, i informacja o długości dodaje się do tabeli), to jeszcze nie znam takiego, ale może coś znajdę...

Natomiast możesz narysować wszystkie linie, jakie masz do narysowania a potem otwierasz tabelę atrybutów, klikasz w ikonkę "Kalkulator pól", a tam w lewej części na górze określasz parametry nowej kolumny dla długości linii (zaznaczone pole przy "Twórz nowe pole"). Nazwij kolumnę, wybierz typ "Liczby dziesiętne (real)", długość ustaw na 10, a dokładność na 2 (dwa miejsca po przecinku). W polu poniżej wpisz:
Kod:
$length
i kliknij ok. W ułamku sekundy obliczona będzie długość wszystkich linii w warstwie.
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
19-11-2015, 07:59 AM
Post: #3
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
zrobiłem tak jak napisałeś ale wyskakuję mi błąd "Brak głównego węzła. Parsowanie nie powiodło się?".
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
10-11-2017, 02:17 PM
Post: #4
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(18-11-2015 10:37 AM)Binko napisał(a):  Jeśli zależy Ci na sposobie bardzo automatycznym (kończysz linię, i informacja o długości dodaje się do tabeli), to jeszcze nie znam takiego, ale może coś znajdę...

Natomiast możesz narysować wszystkie linie, jakie masz do narysowania a potem otwierasz tabelę atrybutów, klikasz w ikonkę "Kalkulator pól", a tam w lewej części na górze określasz parametry nowej kolumny dla długości linii (zaznaczone pole przy "Twórz nowe pole"). Nazwij kolumnę, wybierz typ "Liczby dziesiętne (real)", długość ustaw na 10, a dokładność na 2 (dwa miejsca po przecinku). W polu poniżej wpisz:
Kod:
$length
i kliknij ok. W ułamku sekundy obliczona będzie długość wszystkich linii w warstwie.

A jak zrobić żeby po przesunięciu punktu na linii długość automatycznie się przeliczyła?
Ewentualnie Jak zrobic warstwę z liniami które będa miały etykiety długości zmieniające się dynamicznie przy przesunięciu wierzchołka?
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
10-11-2017, 07:48 PM (Ten post był ostatnio modyfikowany: 10-11-2017 08:50 PM przez xmaziax.)
Post: #5
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(10-11-2017 02:17 PM)Loozak napisał(a):  A jak zrobić żeby po przesunięciu punktu na linii długość automatycznie się przeliczyła?
Ewentualnie Jak zrobic warstwę z liniami które będa miały etykiety długości zmieniające się dynamicznie przy przesunięciu wierzchołka?

To co chcesz osiągnąć w pierwszym punkcie jest banalne w realizacji jeśli do przechowywania danych używasz dowolnej bazy danych (Postgis, Spatialite).
Obsługujesz to triggerami.

Dla SHP możesz użyć wtyczki AutoFields.

Na drugie pytanie masz już częściowo odpowiedź kilka postów wyżej.
Jako etykietę linii nie ustawiasz kolumny dlugosc (o ile taką stworzyłeś w kalkulatorze pól) lecz etykietujesz warstwę funkcją
Kod:
$lenght

Możesz ją od razu zaokrąglić do 2 miejsc po przecinku:
Kod:
round( $length,2)
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
16-11-2017, 02:23 PM
Post: #6
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(10-11-2017 07:48 PM)xmaziax napisał(a):  [quote='Loozak' pid='6273' dateline='1510316230']
Na drugie pytanie masz już częściowo odpowiedź kilka postów wyżej.
Jako etykietę linii nie ustawiasz kolumny dlugosc (o ile taką stworzyłeś w kalkulatorze pól) lecz etykietujesz warstwę funkcją
Kod:
$lenght

Możesz ją od razu zaokrąglić do 2 miejsc po przecinku:
Kod:
round( $length,2)

I w jakich to jest jednostkach? Bo mi dziwne wartości pokazuje np. linia o dł. 182m ma wartość 0.002551
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
16-11-2017, 05:01 PM
Post: #7
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
Musisz zmienić układ projektu i/lub warstwy na jakiś metryczny (prawdopodobnie masz gdzieś WGS84), do tego w ustawieniach projektu zmień elipsoidę pomiaru odległości na GRS 1980, żeby dobrze liczył.
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
20-11-2017, 11:47 AM (Ten post był ostatnio modyfikowany: 20-11-2017 11:47 AM przez Loozak.)
Post: #8
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(16-11-2017 05:01 PM)Binko napisał(a):  Musisz zmienić układ projektu i/lub warstwy na jakiś metryczny (prawdopodobnie masz gdzieś WGS84), do tego w ustawieniach projektu zmień elipsoidę pomiaru odległości na GRS 1980, żeby dobrze liczył.

To inaczej.
Zrobiłem sobie warstwę która na bieżąco aktualizuje długości podczas przesuwania punktu tylko nie pamiętam w jaki sposób
Po wie mi ktoś jak ją znów stworzyć? Jest dodana funkcja $length ale jako suma ?


Załączone pliki Miniatury
   
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
20-11-2017, 01:15 PM
Post: #9
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
Prawdopodobnie chodzi ci nie o warstwę, tylko o kolumnę w tabeli atrybutów. Gdy użyjesz wtyczki AutoFields to za każdą zmianą geometrii warstwy (np. przesunięcia któregoś węzła) zmieni ci się wartość np. długości danego elementu warstwy w odpowiedniej kolumnie (lenght - dla warstwy liniowej). Żeby wartość była w metrach to użyj układu o kodzie EPSG 2180 (układ, w którym jednostkami są metry, stosowany w Polsce).

Szkolenia QGIS
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
20-11-2017, 01:33 PM
Post: #10
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
Do stworzenia shp masz odpowiedź wyżej:
(10-11-2017 07:48 PM)xmaziax napisał(a):  To co chcesz osiągnąć w pierwszym punkcie jest banalne w realizacji jeśli do przechowywania danych używasz dowolnej bazy danych (Postgis, Spatialite).
Obsługujesz to triggerami.

Dla SHP możesz użyć wtyczki AutoFields.

Poza tym nie bardzo rozumiem, co masz na myśli. Długość liczy się dla każdej linii osobno. Sumę musisz sobie zliczyć.
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  punkty gps i dodanie nowego atrybutu czarna1991 4 764 30-12-2017 11:03 AM
Ostatni post: xmaziax
  obliczanie azymutu/kierunku dla poligonu pitt 18 13 394 20-09-2017 08:01 PM
Ostatni post: tomalos
  Automatyczne odczytywanie atrybutów lukaschels 6 9 224 03-01-2015 12:41 AM
Ostatni post: karol.stachura
  Automatyczne wypełnienie tabeli na podstawie złączenia przestrzennego z inną tabelą tomalos 0 2 727 15-10-2014 12:28 PM
Ostatni post: tomalos
  Qgis - automatyczne dodanie poligonu do warstwy dstroj 3 7 641 15-03-2014 12:19 AM
Ostatni post: milena
  automatyczne wypełnianie pól tabeli maciejka 2 9 202 18-09-2012 05:25 PM
Ostatni post: maciejka
  rysowanie lini o zadanej długości eamonn 2 7 403 10-02-2012 11:32 PM
Ostatni post: shod_dc
  obliczanie azymutu linii tomsik 1 7 029 13-01-2012 10:57 AM
Ostatni post: tomalos
  obliczanie pól obszarów pitt 6 12 685 28-01-2011 07:07 PM
Ostatni post: borys
  Obliczanie długości rewelator 4 10 783 22-09-2010 09:55 PM
Ostatni post: rewelator

Skocz do: