[QGIS-it-user] Confronto tra due geometrie successive appartenenti allo stesso layer (pyqgis)

Marco Guiducci marco.guiducci a regione.toscana.it
Gio 5 Apr 2018 10:35:31 PDT



Il 05/04/2018 17:14, sarag ha scritto:
> Purtroppo non riesco a venirne a capo ugualmente.
>
> Facendo una cosa del genere
>
> feat=lati.getFeatures()
> for i in range(1, n-1):
>      l1=feat[i].geometry().length()
>      l2=feat[i+1].geometry().length()
>
> il nuovo errore è: TypeError: 'QgsFeatureIterator' object does not support
> indexing
>
> Mi scuso se sto commettendo errori banali ma è la prima volta che mi
> approccio a PyQGis.
> Grazie davvero per la comprensione e la disponibilità.
>
> Sara
>

non sarà ortodosso, ma funziona:

crea una lista vuota:

listalati=[]

poi riempila così:

for feat in lati.getfeatures():
     listalati.append(feat)

a questo punto puoi iterare su listalati come prima

for i in range(1, n-1):
	l1=listalati[i].geometry().length()
	l2=listalati[i+1].geometry().length()

ricordati che le liste partono da zero. quindi 1 è già il secondo lato.

un consiglio se sei alle prime armi: tieni aperta la consolle di python e fai il print degli oggetti che crei. in questo modo QGis ti dice cosa stai creando, cioè che cosè la tua variabile: una feature? un iteratore? ecc.

marco

-- 
Marco Guiducci - 055 4383194
SITA - Sistema informativo territoriale e ambientale
Regione Toscana - Via di Novoli 26 - 50127 Firenze



Maggiori informazioni sulla lista QGIS-it-user