[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