[QGIS-it-user] Confronto tra due geometrie successive appartenenti allo stesso layer (pyqgis)
sarag
saragau93 a gmail.com
Gio 5 Apr 2018 06:16:36 PDT
Buongiorno a tutti,
devo confrontare le lunghezze di due lati appartenenti allo stesso poligono.
Ho creato tramite un algoritmo un nuovo layer "lati" di linee coincidenti
con i lati del poligono (l'appartenenza al poligono è mantenuta dall'ID
presente nella tabella degli attributi! es. se elemento linea1 ed elemento
linea2 appartengono al poligono n.1, avranno entrambi un attributo "ID" pari
a 1).
Creando un ciclo for per iterare le geometrie del layer "lati", vorrei
confrontare la lunghezza dell'elemento linea i-esimo con il successivo
(j-esimo=i-esimo+1). Il problema è che non riconoscendo pyqgis i come numero
intero, non mi permette di incrementarlo (quindi di creare j=i+1).
for i in lati.getFeatures():
j=i+1
l1=i.geometry().length()
l2=j.geometry().length()
if(j<=n):
if(i[idlin]=j[idlin]):
etc. etc.
TypeError: unsupported operand type(s) for +: 'QgsFeature' and 'int'
Riuscirei anche ad ovviare a questo problema creando un'altra variabile h
come riportato di seguito...
h=0
for i in lati.getFeatures():
if (i==1):
h=1
else:
h=h+1
j=h+1
l1=i.geometry().length()
l2=j.geometry().length()
if(j<=n):
if(i[idlin]=j[idlin]):
etc. etc.
...Ma poi il problema persiste perchè questa volta j, essendo un int, non mi
permette di scorrere le geometrie del layer.
Spero di essere stata sufficientemente chiara e di aver esposto bene il
problema.
Sarò grata a chiunque riesca ad aiutarmi.
Sara
--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html
Maggiori informazioni sulla lista
QGIS-it-user