Estoy cargando varios shapefiles en QGIS usando la consola de Python. El script funciona leyendo una lista de directorios y una lista de shapefiles a cargar de cada directorio, luego carga cada archivo. Así:
encList = "/foo/encList.txt"
shapeList = "/foo/shpList.txt"
path = "/bar/"
with open(encList) as encs:
for enc in encs:
with open(shapeList) as shps:
for shp in shps:
file=path+str(enc).rstrip()+'/'+str(enc).rstrip()+str(shp).rstrip()+".shp"
print file
qgis.utils.iface.addVectorLayer(file, str(enc).rstrip()+str(shp).rstrip(), 'ogr' )
#Use loaded layer as active layer to set the CRS
myLayer = qgis.utils.iface.activeLayer()
myLayer.setCrs(QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId))
También me gustaría configurar las capas del shapefile sobre la marcha. Como lo haría si se hace clic derecho en una capa y seleccionar las propiedades.
En concreto, me gustaría cambiar los colores de las líneas y la visualización de las etiquetas. En mi cabeza necesitaría algo como este pseudocódigo añadido en el bucle:
if shapefile == line:
then shapefile.setColor(black)
if shapefile == points:
then shapefile.setStyle(pointDisplacement)
ans shapefile.setStyle.lable('nameOfPoint')
O algo así. He descubierto cómo hacer las condiciones, sólo necesito entender cómo cambiar los atributos. ¿Alguien sabe de una manera o un tutorial?
(Soy nuevo en QGIS, pero sé cómo funciona Python)
2 votos
Puede echar un vistazo a esta pregunta sobre los ajustes de color de PyQgis. Hay un tuto más detallado ici sobre estilismo general.
2 votos
Para más información, puede consultar esta pregunta sobre etiquetas: Cómo añadir etiqueta a QgsVectorLayer por Python .
2 votos
También me gustaría sugerir a familiarizarse con pyqgis api, y el modelo de datos. Eso haría su vida más fácil en el futuro.