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, (Ten post był ostatnio modyfikowany: 17-11-2015, 08:26 {2} przez karliTToO.)
#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?
18-11-2015, 10:37,
#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.
19-11-2015, 07:59,
#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ę?".
10-11-2017, 14:17,
#4
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(18-11-2015, 10:37)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?
10-11-2017, 19:48, (Ten post był ostatnio modyfikowany: 10-11-2017, 20:50 {2} przez xmaziax.)
#5
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(10-11-2017, 14:17)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)
16-11-2017, 14:23,
#6
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(10-11-2017, 19:48)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
16-11-2017, 17:01,
#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ł.
20-11-2017, 11:47, (Ten post był ostatnio modyfikowany: 20-11-2017, 11:47 {2} przez Loozak.)
#8
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
(16-11-2017, 17:01)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
   
20-11-2017, 13:15,
#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).
20-11-2017, 13:33,
#10
RE: Automatyczne obliczanie długości lini i dodanie do tab. atrybutów?
Do stworzenia shp masz odpowiedź wyżej:
(10-11-2017, 19:48)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ć.


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Automatyczne połączenie linii na podstawie atrybutu hasan1685 1 166 31-08-2018, 10:31
Ostatni post: Binko
  Automatyczne, cykliczne odświeżanie zawartości zapisanej w warstwie frankie 3 584 06-06-2018, 11:09
Ostatni post: frankie
  tabela atrybutów skomplikowane dodanie tabeli dukasa 2 570 28-05-2018, 17:10
Ostatni post: dukasa
  Automatyczne uzupełnianie pola ID Arnebius1 5 1 124 19-04-2018, 22:15
Ostatni post: xmaziax
  Automatyczne przecięcie warstw Roland_z_Gilead 3 1 402 29-01-2018, 15:52
Ostatni post: Roland_z_Gilead
  punkty gps i dodanie nowego atrybutu czarna1991 4 2 506 30-12-2017, 11:03
Ostatni post: xmaziax
  obliczanie azymutu/kierunku dla poligonu pitt 18 21 174 20-09-2017, 20:01
Ostatni post: tomalos
  Nierzeczywiste długości na mapie OSM Pablitto 3 4 486 10-03-2017, 22:46
Ostatni post: Italiano
  Automatyczne odczytywanie atrybutów lukaschels 6 11 903 03-01-2015, 00:41
Ostatni post: karol.stachura
  Automatyczne wypełnienie tabeli na podstawie złączenia przestrzennego z inną tabelą tomalos 0 3 358 15-10-2014, 12:28
Ostatni post: tomalos

Skocz do: