Forum QGIS

Pełna wersja: Automatyzacja atrybutów nowy obiektów
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Cześć,

mam mały problem i będę wdzięczny za pomoc.

Mam stworzone dwie warstwy "działki" i "dzierżawa".
W warstwie "działki" znajdują się atrybuty m.in. "nr dzialki", "nazwa obrębu".
Obiekty na warstwie "dzierżawa" tworze ręcznie poprzez ich rysowanie w oparciu o granice działek (warstwa "działki"). Mogą wystąpić następujące przypadki:
1) rysowany obiekt w całości pokrywa się z działką
2) rysowany obiekt stanowi część działki
3) rysowany obiekt stanowi więcej niż jedną działkę (kilka całych działek lub np jedną i trochę sąsiedniej).
Tworzone obiekty stanowią poligony.

Czy istnieje możliwość zautomatyzowania procesu tworzenia nowego obiektu na warstwie "dzierżawa" w taki sposób, żeby automatycznie pobierane były atrybuty "nr dzialki", "nazwa obrębu" z warstwy "działki" jakoś po geometrii?

Warstwy nie posiadają unikalnych wartość w celu stworzenia relacji.

Z góry dziękuje za pomoc.
Chodzi Ci o automatyzacje podczas ryzowania, czy po prostu o automatyczne przepisanie wartości z działek do dzierżawy po zakończeniu procesu rysowniczego? Jak to drugie to wektor-> narzędzia geoprocessingu -> przecięcie
a jeżeli nie chcesz "obcięcia" do wspólnych powierzchni, to https://docs.qgis.org/3.22/en/docs/user_...bylocation
W założeniu system funkcjonować miał na zasadzie, że podczas rysowania nowego obiektu atrybuty "nr dzialki", "nazwa obrębu" zostałyby wypełnione automatycznie.

Warstwa dzierżawa będzie stale podlegała edycją, będą tworzone nowe i usuwane obiekty. Wyobrażałem to sobie w ten sposób, żeby na warstwie dzierżawa były nazwy atrybutów "nr działki", "nazwa obrębu" i one byłyby uzupełniane bez konieczności wykonywania dodatkowych opcji, czy tworzenia dodatkowych warstw.

Coś na zasadzie żeby dla tych atrybutów domyślnie przypisać jakąś formułę, algorytm, czy w ogóle jest taka funkcjonalność ?
Tak. Wszystko co chcesz osiągnąć jest do zrobienia w QGIS.
Pojawia się jednak trochę pytań, od których zależy sposób realizacji. Zasadnicze to gdzie będą trzymane dane, ile osób ma tego używać, co w przypadku gdy dzierżawa leży na kilku działkach, czy ma się to dziać po każdym rysowaniu, czy np. na koniec pracy danego dnia itp. itd. 
W zależności od tego można myśleć o właściwym rozwiązaniu.
System przygotowuje, żeby usprawnić sobie pracę i tylko ja będę z niego korzystał. Dane będę trzymane na jednostce na której pracuje.

Najlepszym rozwiązaniem byłoby wypełnianie po każdym rysowaniu.

W przypadku gdy dzierżawa leży na kilku działkach najbardziej pożądanym rozwiązaniem byłoby wypełnienie w dzierżawie nr działek po przecinku
Nie chodziło mi o miejsce tylko o format…
Dobra.
Opisałeś 3 sytuacje.
Teoretycznie możesz mieć dzierżawy w 1 obrębie lub w większej ilości (czysto teoretycznie).
W związku z tym, w tych dzierżawach musisz mieć opcję wpisania kilku obrębów, kilku numerów działek.
Średnio widzę sens takiego przepisywania. Można to zrobić, ale istotny też jest format, bo w zależności od niego można to na różne sposoby wykonać.
Na szybko to możesz zrobić widok na tych 2 tabelach, zapisać projekt i używać tych danych.
W SQL sobie złożysz zapytanie dla przecięć np.:
Kod:
with przeciecie as (
select a.obreb, a.numer, b.id, st_intersection (a.geometry, b.geometry)  as geometry from dzialki a
inner join dzierzawy b on st_intersects(a.geometry, b.geometry))
select id, group_concat(obreb, ',') as obreby, group_concat(numer, ',') as dzialki, st_union(geometry)from przeciecie group by id
Dodajesz to do projektu, zapisujesz projekt i masz warstwę przecinającą te dwie i samoczynnie zwracającą dane.
Co dalej z tym zrobisz to już wg uznania, możesz sobie je połączyć po ID dzierżawy i skopiować.
Lub trzymać w tej postaci.

W SQL warto by było pomyśleć o odfiltrowaniu jeszcze stykających się działek, np po małej powierzchni nachodzenia.
Już tego nie uwzględniałem w swoim zapytaniu.