¿Cómo puedo cambiar el color del borde de relleno de las capas vectoriales? Quiero que sea Relleno Transparente. Tengo 1000 shapefiles, y quiero que sean de relleno transparente. ¿Hay una manera de hacerlo por Python Script?
Respuestas
¿Demasiados anuncios?Al establecer el color del contorno para la capa vectorial, establezca la opacidad en '0', entonces el contorno será transparente en Propiedades de la capa -> Estilo, luego guarde su estilo de capa el estilo de capa como archivo .qml y aplique el mismo estilo a todas las capas. Para aplicar el estilo de la capa utilizando los siguientes códigos en la consola de Python
# create vector layer object
vector_file = '/path/to/vetor.shp'
vector = QgsVectorLayer(vector_file, 'vector name', 'ogr')
# Adds vector layer to registry
QgsMapLayerRegistry.instance().addMapLayer(vector)
# Set the layer style from qml file
vector.loadNamedStyle('/path/to/file.qml')
# Refresh the canvas to make the change in layer style visible
iface.mapCanvas().refresh()
Utiliza algún bucle para repetir lo mismo para varias capas. Ver aquí para cargar varias capas.
Para rellenar el fondo de la capa transparente, utilice el siguiente código:
from PyQt4 import QtGui
layer = iface.addVectorLayer("path_to_vector_layer", "layer_name", "ogr")
myVectorLayer = iface.activeLayer()
myRenderer = myVectorLayer.rendererV2()
if myVectorLayer.geometryType() == QGis.Polygon:
mySymbol1 = QgsFillSymbolV2.createSimple({'color':'#ffffff',
'color_border':'#000000',
'width_border':'0.6'})
myRenderer.setSymbol(mySymbol1)
myVectorLayer.triggerRepaint()
A mí me funciona :)