Skip to content

Instantly share code, notes, and snippets.

@gledsoncruz
Last active January 9, 2018 10:06
Show Gist options
  • Save gledsoncruz/3639d0891eb588d17f3e900e66e0db15 to your computer and use it in GitHub Desktop.
Save gledsoncruz/3639d0891eb588d17f3e900e66e0db15 to your computer and use it in GitHub Desktop.
QGIS function
"""
Define new functions using @qgsfunction. feature and parent must always be the
last args. Use args=-1 to pass a list of values as arguments
"""
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='GCFunctions')
def GetIntersectGeoms(layer_name, field_name, feature, parent):
"""
<h4>Syntax</h4>
<p>GetIntersectGeoms(<i>layer_name,field_name</i>)</p>
<h4>Arguments</h4>
<p><i>layer_name</i> = Nome da layer que voce deseja verificar a ocorrencia de intersecao</p>
<p><i>field_name</i> = Nome da coluna que deseja mostrar</p>
<h4>Example</h4>
GetIntersectGeoms('myLayerName', 'myFieldName')
"""
layer_poly = None
try:
layer_poly = QgsMapLayerRegistry.instance().mapLayersByName(layer_name)[0]
polygons_selected = []
for feat in layer_poly.getFeatures():
if feature.geometry().intersects(feat.geometry()):
polygons_selected.append(feat[field_name])
return ',\n'.join(sorted(polygons_selected))
except IndexError:
return 'Layer nao encontrada'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment