Puede utilizar las soluciones dadas en Uso de algoritmos de procesamiento desde la consola :
Pero si nos fijamos en lo que hay en el módulo (versión 2.2):
import processing
dir(processing)
no más getfeatures()
o getFeatures()
Puede controlar esto con una pequeña función adaptada de Script de Python para filtrar por patrón de texto los métodos de Clases en PyQGIS de José Guerrero
import re
def get_patt(keyword, L):
return [item for item in dir(L) if re.search(keyword,item)]
get_patt("getfeatures",processing)
[]
get_patt("getFeatures",processing)
[]
pero lo hay:
get_patt("features",processing)
['features']
Así que el comando es:
features = processing.features(layer)
Pero para mí, es más fácil con:
sin procesar:
layer = qgis.utils.iface.activeLayer()
con procesamiento:
layer = processing.getObject("name_of_the_layer")
Todas las características:
for feat in layer.getFeatures():
geom= feat.geometry()
attr =feat.attributes()
Sólo funciones seleccionadas:
for feat in layer.selectedFeatures():
geom= feat.geometry()
attr =feat.attributes()
y, por ejemplo, una "solución universal":
if layer.selectedFeatureCount():
geom = [feat.geometry() for feat in layer.selectedFeatures()]
else:
geom = [feat.geometry() for feat in layer.getFeatures()]