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 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) A tutaj tabela atrybutów, aby zobrazować jak to wygląda. |