Estoy tratando de usar overlay_intersects()
dentro de una expresión para recorrer las entidades de una capa objetivo que se intersectan con una entidad que tiene cierto "id"
.
request_string = "overlay_intersects(layer:='"+target_layer_name+"', filter:=id='"+matching_feature_id+"')"
features = current_layer.getFeatures(request_string)
for feat in features:
print(feat.attribute('name')+" se intersecta con la entidad con id '"+matching_feature_id+"'")
Pero esto no funciona en un bucle, todas las entidades se evalúan como falsas en esta situación.
Si uso la misma expresión en la Calculadora de Campos y configuro un campo como matches
con ella, funcionará como se espera: todas las entidades de la capa actual que se intersectan con la que tiene id matching_feature_id
en la capa objetivo tendrán su campo matches
configurado como true
y las demás como false
.
Campo matches
(booleano) = overlay_intersects(layer:='target_layer_name', filter:=id='matching_feature_id')
- QGIS: 3.22.7-Biaowiea
- Python: 3.9.2