Użyj kalkulatora pola, aby sprawdzić przecięcie
Ostateczny cel
Planuję pobrać atrybuty z warstw za pomocą kalkulatora pola, gdzie przecinają się one z geometrią.
Bieżący krok
Sprawdzanie, czy prąd $geometry
przecina się z interesującą nas warstwą.
Co próbowałem
intersects($geometry,collect_geometries('Layer'))
- i odmiany map_get
. Ponieważ właśnie dowiedziałem się, że intersects
należy podać znane geometrie, podczas gdy chcę sprawdzić, czy na warstwie znajduje się geometria, w rzeczywistości jestem zagubiony. Po prostu nie wiem, jak sprawdzić skrzyżowania za pomocą kalkulatora pola.
Jeśli nie jest to możliwe przy użyciu kalkulatora pola, to może Python?
Odpowiedzi
Załóżmy, że masz warstwę z wielokątami, która zawiera atrybut „nazwa”: na poniższym zrzucie ekranu to pole nazwy ma wartości A, B, C, D, E i F (wielokąty są oznaczone).
Mamy ponadto warstwę linii i chcemy uzyskać nazwy wielokątów, które przecina linia. Od QGIS 3.16 (patrz wizualny dziennik zmian ; dla starszych wersji QGIS może pomóc wspomniana tam wtyczka RefFunctions ), są nowe wyrażenia nakładek. Możemy użyć jednego z nich, aby oznaczyć linię nazwami wielokątów, które przecina. W ten sam sposób wyrażenie można wykorzystać w kalkulatorze pól do wygenerowania nowych pól (nawet pól wirtualnych do obliczeń dynamicznych):
array_to_string (
overlay_intersects (
'Polygons',
name
)
)
