En primer lugar, quiero decir que sé que se planteó un problema similar antes, pero no proporcionó una solución satisfactoria.
Necesito obtener el número de vértices de cada objeto en la capa de línea vectorial. Basándose en este artículo: https://joseguerreroa.wordpress.com/2014/07/28/contar-y-extraer-nodos-vertices-para-vectoriales-de-linea-o-poligono-mediante-pyqgis/
Hice este código:
layer = qgis.utils.iface.activeLayer()
feat = layer.getFeatures()
for feature in feat:
geom = feature.geometry()
n = 1
ver = geom.vertexAt(0)
points=[]
while(ver != QgsPoint(0,0)):
n +=1
points.append(ver)
ver = geom.vertexAt(n)
print n
Y como resultado obtengo el número de vértices, pero solo del último objeto. Supongo que me falta uno mientras bucle en la capa (para obtener el número de cada objeto), ¿estoy en lo cierto? Pero no sé cómo debería verse.
Sé que en mi caso existe el complemento 'Contador de vértices ", pero no funciona (ni siquiera se inicia) (QGIS 2.12, Win 8.1). Y necesito que se haga en Python.
Por cierto, ¿no les parece, chicos, que es ridículamente difícil obtener el número de vértices mientras que es tan fácil llegar a las coordenadas de cada vértice?
EDITAR: @nwduncan (@ArMoraer también) sugirió arreglar una sangría, y fue una buena pista. Noté que la consola Python necesita refresco, porque a veces no puede manejar las sangrías. Espero que ayude a otros principiantes. El código final es:
layer = qgis.utils.iface.activeLayer()
feat = layer.getFeatures()
for feature in feat:
geom = feature.geometry()
n = 1
ver = geom.vertexAt(0)
points=[]
while(ver != QgsPoint(0,0)):
n +=1
points.append(ver)
ver=geom.vertexAt(n)
print n
QgsPoint(0,0)
es un punto válido en algunas proyecciones.