¿Cómo copiar el estilo de color a una columna de color en la tabla de atributos de una capa?

14

Tengo una capa de polígono en QGIS a la que le he aplicado un estilo de color aleatorio a cada polígono. En Propiedades de capa - > Estilo Seleccioné un estilo categorizado y luego generé una rampa de color aleatoria. Agregué una columna de color a la tabla de capas. ¿Hay alguna manera de copiar automáticamente el color asignado en el estilo a la columna de color para cada polígono en el formulario "# ff0000"?

En última instancia, quiero exportarlo como una capa GeoJSON e importarlo en un mapa de folletos. La columna de color establecerá el color en el folleto.

    
pregunta user2956607 14.01.2014 - 05:37

1 respuesta

20

Podrías usar PyQGIS para eso (aunque no estoy seguro de que sea la mejor solución).

Seleccione (o active) la capa en QGIS ToC, abra la consola QGIS Python y copie este fragmento de código:

prefix = "'"
layer = iface.activeLayer()
attr = layer.rendererV2().classAttribute()
attrColor = 'color' # Name of the field to store colors
fieldIndex = layer.dataProvider().fieldNameIndex(attrColor)
attrFeatMap = {}

for cat in layer.rendererV2().categories(): 
  expr = "\""+attr+"\"="+prefix+unicode(cat.value())+prefix
  for f in layer.getFeatures(QgsFeatureRequest(QgsExpression(expr))):
    attrMap = { fieldIndex : cat.symbol().color().name()}
    attrFeatMap[ f.id() ] = attrMap

layer.dataProvider().changeAttributeValues( attrFeatMap )

Supongo que tu campo para almacenar colores se llama "color". Después de ejecutarlo, he obtenido esto:

Hazme saber si te enfrentas a algún problema.

    
respondido por el Germán Carrillo 22.07.2015 - 17:07

Lea otras preguntas en las etiquetas