[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