La clase QgisFeatureRequest puede usarse para seleccionar rasgos ordenados por varios campos. En este post se va a considerar el shapefile de la imagen siguiente para realizar un ordenamiento por dos de sus campos: 'Circuit' y 'area'. Para corroborar que el ordenamiento se realiza según lo previsto se imprimen en la Python Console los ids de los rasgos seguidos de los valores correspondientes a los campos 'Circuit' y 'area'. Aunque posible, no se produce la memory layer con los features ordenados por ambos campos.
El código completo se incluye a continuación:
1 2 3 4 | layer = iface.activeLayer() for feature in layer.getFeatures(QgsFeatureRequest().addOrderBy('Circuit',True).addOrderBy('area',True)): print(feature.id(), feature.attribute(feature.fieldNameIndex('Circuit')), feature.geometry().area()) |
La ejecución del código anterior imprime en la Python Console los valores siguientes que comprueban que el ordenamiento se realizó según lo esperado.
6 1 127035968.31463054 4 1 196392600.4963259 3 1 213453359.47330928 1 1 280502186.9702289 0 2 138971089.3700023 5 2 144829440.03875843 7 2 162925151.1347428 2 2 373715925.390651
No hay comentarios:
Publicar un comentario