Forum QGIS
Sumowanie atrybutów w nakładających się warstwach - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: GIS dla początkujących (http://forum.quantum-gis.pl/forum-16.html)
+--- Wątek: Sumowanie atrybutów w nakładających się warstwach (/thread-2026.html)



Sumowanie atrybutów w nakładających się warstwach - sakekl - 29-05-2023

Mam taki zamysł, aby przedstawić listę połączeń autobusowych na mapie i chciałbym to zrobić w formie linii. Założyłem, że każda warstwa to będzie linia zawierająca w tabeli atrybutów ilość połączeń w dobie. I teraz mam problem bo nie wiem jak zrobić, aby w sytuacji gdzie na mapie nakładają mi się dwie warstwy to na tych konkretnie nakładających się odcinkach liczba połączeń się sumowała na podstawie danych z tabeli atrybutów.

Czy może ktoś podrzucić rozwiązanie mojego problemu??


RE: Sumowanie atrybutów w nakładających się warstwach - xmaziax - 29-05-2023

Ciężko powiedzieć bez wglądu w dane. 
Teoretycznie musisz zacząć od podzielenia linii na odcinki bazując na sieci przystanków. 
Potem analizujesz poszczególne odcinki pomiędzy przystankami. 
Jeżeli fragmenty linii, leżące na sobie są identyczne, możesz wrzucić wszystko na 1 warstwę, usunąć duble i potem np. znaleźć środek takich odcinków, w ich miejscu dać mały bufor. 
Tak otrzymaną warstwę poligonową przecinasz z poszczególnymi warstwami linii (pociętymi) i sumujesz wyniki łącząc po id z warstwy poligonowej. 
Jeżeli fragmenty linii pomiędzy tymi samymi przystankami nie są współliniowe sprawa się nieco komplikuje, bo musisz wyeliminować duble. 
Możesz w tym celu tym stworzonym środkom odcinków nadać id przystanku startowego i końcowego i pozbyć się dubli zostawiając 1 poligon z  jedną kombinacją id_startowe id_końcowe.
Bufor dobierasz tak, żeby wyeliminować nie dokładność danych (co może także prowadzić do błędów). 
Jak napisałem na początku wszystko zależy od danych.


RE: Sumowanie atrybutów w nakładających się warstwach - sakekl - 01-06-2023

A może jest jakieś mniej skomplikowane rozwiązanie? Może da się coś w stylach poustawiać, aby uzyskać oczekiwany efekt? Poniżej mapka na której pracuje
[Obrazek: e5543f46a999.png]

Poniżej w otoczce zaznaczyłem miejsce gdzie nakładają się trzy linie. Chciałbym, aby szerokość w tym miejscu była sumą trzech wartości z tabeli atrybutów (są to wartości różne dla każdej lini). Sama szerokość lini jest zrobiona za pomocą formuły - if( "Natezenie"  / 30 <= 0.2, 0.2 , "Natezenie"  / 30)

[Obrazek: 04f706ae90fc.png]

A tutaj tabela atrybutów, aby zobrazować jak to wygląda.

[Obrazek: 4723870fdf66.png]