4 votos

Modificación de la textura/relleno de una capa vectorial en PyQGIS

Actualmente estoy escribiendo un script independiente para modificar unas capas vectoriales para que tengan un patrón de relleno de vino en su interior. La geometría con la que estoy trabajando es un polígono. Sé cómo cambiar los colores del contorno y los colores de relleno simples; pero, ¿alguien sabe cómo añadir un patrón dentro del polígono?

8voto

Chris Kloberdanz Puntos 1871

Empieza con:

symbol = QgsSymbolV2.defaultSymbol(layer.geometryType())
renderer = QgsSingleSymbolRendererV2(symbol)

Ahora tienes 10 tipos de relleno:

  • Relleno simple, QgsSimpleFillSymbolLayerV2
  • Relleno de degradado, QgsGradientFillSymbolLayerV2
  • Relleno de centroides, QgsCentroidFillSymbolLayerV2
  • Relleno de patrón de línea, QgsLinePatternFillSymbolLayer
  • Relleno de puntos, QgsPointPatternFillSymbolLayer
  • Relleno SVG, QgsSVGFillSymbolLayer
  • Contorno: línea de marcador, QgsMarkerLineSymbolLayerV2
  • Contorno: línea simple, QgsSimpleLineSymbolLayerV2
  • Relleno de forma, QgsShapeburstFillSymbolLayerV2
  • Raster fill, QgsRasterFillSymbolLayer

Así que para el relleno simple será:

symbol_layer = QgsSimpleFillSymbolLayerV2.create(properties)

properties es un diccionario {'color':'red', 'style': 'f_diagonal', ...} por lo que aquí se puede elegir el parámetro "estilo" adecuado. Si no sabes nada de los parámetros, puedes dar estilo a tu capa en QGIS, exportar este estilo a un archivo .qml, y comprobar las etiquetas adecuadas para las palabras clave. Son las mismas que en pyqgis.

renderer.symbols()[0].changeSymbolLayer(0, symbol_layer)
layer.setRendererV2(renderer)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X