Forum QGIS

Pełna wersja: Kalkulator- wyciąganie atrybutów z innych warstw.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam,

Czy w QGIS jest opcja przy pomocy kalkulatora uzupełniać pola wartościami z innych warstw?

otóż problem z jakim się spotkałem wygląda następująco.

w warstwie liniowej A mam pola [nr_1] oraz [nr_2], które powinny zawierać nr punktu początkowego oraz końcowego. Numery te zawiera warstwa punktowa B (linie A łączą punkty B).
Do tej pory uzupełniałem atrybuty [nr_1] i [nr_2] tworząc tymczasowe kolumny [X_pocz] , [X_kon] w warstwie A oraz [X] w warstwie B.
[X_pocz]: xat(0)
[X_kon]: xat(1)

[X]: $x

na tej podstawie robiłem złączenie tabel, najpierw po [X_pocz], kalkulatorem uzupełniałem pole [nr_1] z dołączonej tabeli B i pola [nr] , a potem analogicznie dla [nr_2].
Na koniec oczywiście usuwanie tymczasowych kolumn.
Niby działa i jest to skuteczne, ale mam wrażenie, że da się to zrobić szybciej nie bawiąc się kolumnami i złączeniami tabel..

Czy istnieje jakiś sposób na wyciągnięcie wartości z konkretnej kolumny jednej warstwy przy spełnionym warunku np.
xat(0) warstwy A = $x warstwy B
albo coś w ten deseń?

Huh
Witam
Wydaje mi się że bezpośrednio w QGIS się nie da. Można to zrobić przez SQL jeśli wczytasz dane np. do bazy SpatiaLite.
Pierwszy lepszy przykład z googla: http://www.surfaces.co.il/?p=1208
Ale to wymaga najpierw wczytania danych do bazy a później ewentualnie ich eksportu. Chociaż SpatiaLite pozwala również dynamicznie podpiąć pliki SHP tak aby były widoczne jako tabele przestrzenne, być może to rozwiązanie bardziej przypadnie Ci do gustu niż łączenie tabel w QGIS.

Pozdrawiam