Forum QGIS
Automatyczne odczytywanie atrybutów - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: Automatyczne odczytywanie atrybutów (/thread-1153.html)



Automatyczne odczytywanie atrybutów - lukaschels - 12-12-2014

Posłużę się przykładem aby opisać problem.
Mam warstwę z gminami oraz druga z powiatami obie mają atrybuty teryt i nazwę.
Utworzyłem kolejna warstwę przystanki (punktową) i teraz tworząc nowy punkt chciałbym aby nazwa powiatu i gminy była już przypisana w oknie określania atrybutów. Inaczej mówiąc aby Q gis pobrałem sobie dane z warstw które już są.

Czy jest możliwe takie rozwiązanie czy jednak trzeba ręcznie wszystko wpisywać i znać każdy atrybut w punkcie


RE: Automatyczne odczytywanie atrybutów - martel - 13-12-2014

Przy tworzeniu nowych obiektów to nie bardzo (co najwyżej można sobie utworzyć rozwijalne listy z nazwami gmin i powiatów aby nie wklepywać ręcznie), ale można aktualizować z automatu warstwę punktową o nazwy gmin i powiatów po narysowaniu. Zainstaluj wtyczkę "refFunctions", która dodaje nowe opcje do kalkulatora pól. Następnie otwórz kalkulator pól dla warstwy z przystankami, w kalkulatorze dodana została nowa grupa funkcji o nazwie "Reference", z niej wybierz "geomwithin", ta funkcja pozwala na pobranie atrybutów z warstwy docelowej przy spełnieniu warunku, że obiekt źródłowy zawiera się w docelowym. A więc chcąc punktom przypisać nazwę gminy, w której punkt się znajduje, składnia będzie wyglądać następująco:
geomwithin('nazwa warstwy z gminami','nazwa pola zawierającego nazwy gmin')
I analogicznie będzie dla powiatów.


RE: Automatyczne odczytywanie atrybutów - sew - 19-12-2014

Bardzo przydatna wtyczka.
Jak będzie wyglądało wyrażenie, w którym chciałbym pozyskać sumę pól wszystkich obiektów w 1 warstwie, zawartych w obiektach 2 warstwy?
Moje wyrażenie geomcontains('nazwawarstwy','nazwa atrybutu') zwraca tylko wartość jednego obiektu, podczas gdy zależy mi na sumie wartości zawartych w poligonie warstwy 2.


RE: Automatyczne odczytywanie atrybutów - martel - 19-12-2014

Dobrze rozumiem, że mając np. warstwę poligonową i punktową chciałbyś w tabeli atrybutów warstwy poligonowej uzyskać sumę wartości jakiegoś pola z obiektów punktowych zawierających się w danym poligonie? Jeżeli tak, to do tego masz inne narzędzie, w menu Wektor->Narzędzia zarządzania danymi i tam masz Połącz atrybuty poprzez lokalizację. Wybierasz warstwę poligonową do aktualizacji, warstwę punktową do złączenia, zaznaczasz, żeby pobrał podsumowanie przecinających się obiektów i dodatkowo wybierasz sobie czy chcesz sumę, średnią, medianę czy może wartości min i max. Wynikiem będzie nowa warstwa poligonowa na bazie istniejącej z dodanymi wybranymi statystykami z warstwy punktowej plus dodatkowa kolumna z liczbą punktów w poligonie.


RE: Automatyczne odczytywanie atrybutów - sew - 19-12-2014

Dzięki za cenną wskazówkę martel.
Chodziło mi o wyliczenie procenta zabudowy na działce więc generalnie Twój sposób zadziałał. Jedynie co nie do końca się zgadza to sytuacja w której budynek (poligon) znajduje się na powierzchniach dwóch działek (też poligony). Wtedy taki budynek jest liczony jednocześnie na dwóch działkach, zawyżając znacznie wartość % zabudowy.


RE: Automatyczne odczytywanie atrybutów - martel - 20-12-2014

To sprawdź jeszcze wtyczkę MMQGIS, jest tam narzędzie Spatial Join w menu Combine, zasada działania tego narzędzia jest zbliżona do wyżej opisywanego, jednak przy łączeniu atrybutów po lokalizacji oferuje również Proportional Sum.


RE: Automatyczne odczytywanie atrybutów - karol.stachura - 03-01-2015

(12-12-2014, 14:17)lukaschels napisał(a): Posłużę się przykładem aby opisać problem.
Mam warstwę z gminami oraz druga z powiatami obie mają atrybuty teryt i nazwę.
Utworzyłem kolejna warstwę przystanki (punktową) i teraz tworząc nowy punkt chciałbym aby nazwa powiatu i gminy była już przypisana w oknie określania atrybutów. Inaczej mówiąc aby Q gis pobrałem sobie dane z warstw które już są.

Czy jest możliwe takie rozwiązanie czy jednak trzeba ręcznie wszystko wpisywać i znać każdy atrybut w punkcie

Zobacz tutaj:
http://geoinformatyka.com.pl/automatyczna-aktualizacja-warstwy-bazy-spatialite-w-qgis-na-podstawie-innej-warstwy/