Utilisez la calculatrice de champ pour vérifier l'intersection
But ultime
Je prévois de récupérer les attributs des couches à l'aide du calculateur de champ là où ils se croisent avec une géométrie.
Étape actuelle
Vérifier si le courant $geometry
croise la couche d'intérêt.
Ce que j'ai essayé
intersects($geometry,collect_geometries('Layer'))
- et des variations de map_get
. Depuis que je viens d'apprendre qu'il intersects
faut remettre des géométries connues, alors que je veux vérifier s'il y a une géométrie sur la couche, je suis en fait perdu. Je ne sais tout simplement pas comment vérifier les intersections à l'aide du calculateur de champ.
Si ce n'est pas possible en utilisant la calculatrice de champ, alors peut-être Python?
Réponses
Supposons que vous ayez une couche avec des polygones qui contient un attribut "nom": dans la capture d'écran ci-dessous, ce champ de nom a les valeurs A, B, C, D, E et F (les polygones sont étiquetés).
Nous avons en outre une couche de lignes et nous voulons obtenir les noms des polygones que la ligne coupe. Depuis QGIS 3.16 (voir le journal des modifications visuelles ; pour les anciennes versions de QGIS, peut-être que le plugin RefFunctions référencé ici pourrait aider), il existe de nouvelles expressions de superposition. Nous pouvons utiliser l'un d'eux pour étiqueter la ligne avec les noms des polygones qu'elle croise. De la même manière, l'expression peut être utilisée dans le calculateur de champs pour générer de nouveaux champs (même des champs virtuels pour le calcul dynamique):
array_to_string (
overlay_intersects (
'Polygons',
name
)
)
