python console - vector geometry type - attribute error

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

python console - vector geometry type - attribute error

Fabrizio murè
ciao a tutti, sono nuovo in lista.
non so se la domanda è opportuna o mi devo rivolgere piu' direttamente agli sviluppatori. 
sto provando a studiare Python e dalla console di QGIS 2.1. Master sto lavorando con layer vettoriali.

se provo a eseguire il seguente modulo (sempre dentro la console python):  

from PyQt4.QtCore import *
from PyQt4.QtGui import *

cLayer = qgis.utils.iface.mapCanvas().currentLayer()
feat = QgsFeature()
for feat in cLayer.getFeatures():
    print "Feature ID %d: " % feat.id() 
    geom = feat.geometry()
    if (geom.vectorType() == QGis.Point()):
        x = geom.AsPoint()
    elif (geom.vectorType() == QGis.Line):
        x = 'geom.AsLine()

ottengo il seguente errore AttributeError: 'QgsGeometry' object has no attribute 'vectorType'

la ocsa strana è che ho ripreso questo esempio dal manuale on line: @http://www.qgis.org/en/docs/pyqgis_developer_cookbook/vector.html

puo' essere che non esista il metodo vectorType? 
in effetti su API Documentation nella classe QgsGeometry non c'è un metodo pubblico con questo nome, ma allora c'è un errore nel manuale..

Qualcuno ha già affrontato il problema e/o supportarmi in questo dubbio da principiante?

Grazie in anticipo.
Saluti,

Fabrizio

_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013
Reply | Threaded
Open this post in threaded view
|

Re: python console - vector geometry type - attribute error

Giuliano Curti
Il giorno Wed, 20 Nov 2013 18:11:21 +0100
Fabrizio murè <[hidden email]> ha scritto:

> ciao a tutti, sono nuovo in lista.

ciao, benvenuto :-)


> ......
>
> cLayer = qgis.utils.iface.mapCanvas().currentLayer()

basta: cLayer = iface.activeLayer()
(iface è già inizializzata :-)


> feat = QgsFeature()

questa non è necessaria, cLayer.getFeatures() restituisce una feature
(è un refuso nel cookbook che inganna effettivamente);

> .....
>     if (geom.vectorType() == QGis.Point()):

        if (geom.type() == QGis.Point):


> Qualcuno ha già affrontato il problema e/o supportarmi in questo
> dubbio da principiante?

provato :-)

 
> Grazie in anticipo.
> Saluti,
>
> Fabrizio

ciao,
giuliano
_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013