Suite

PyQGIS - Fonctionnalités de style individuellement basées sur la valeur de l'attribut - moteur de rendu personnalisé en option ?

PyQGIS - Fonctionnalités de style individuellement basées sur la valeur de l'attribut - moteur de rendu personnalisé en option ?


J'essaie de coloriser toutes les entités de toutes les couches de mon document QGIS 2.8.2 en fonction d'une valeur de couleur, qui est déterminée individuellement pour chaque entité. J'ai une instance QtGui.QColor pour chaque fonctionnalité, mais je dois toujours l'appliquer à la fonctionnalité via un moteur de rendu.

de PyQt4 import QtGui, QtCore canvas = qgis.utils.iface.mapCanvas() couches = canvas.layers() pour la couche dans les couches : iter = layer.getFeatures() pour la fonctionnalité dans iter : if feature['ELEM_NR'] != "et feature['ELEM_NR'] != NULL: # color = QtGui.QColor() #… # hexValue est déterminé en fonction de feature['ELEM_NR'] #… color = QtGui.QColor(hexValue ) # comment puis-je postuler couleur à présenter'?

Contexte (pourquoi je n'utilise pas simplement des symboles gradués) :

Chaque couche a un attribut qui est une sorte d'identifiant. Je veux que chaque entité (peu importe la couche dans laquelle elle se trouve), qui a la même valeur d'attribut, soit colorée de la même manière.

Étant donné que le nombre d'entités diffère entre les couches et que la plage de valeurs de l'attribut est assez grande, ni le catgorized ni legraduateSymbol-Renderer décrits ici n'apporteraient le résultat souhaité (du moins à ma compréhension).

L'utilisation d'un moteur de rendu personnalisé tel que décrit dans la documentation semble prometteur, mais je ne sais pas comment l'inclure.

Une idée?


Si vous avez un champ (ou vous pouvez utiliser une expression pour des choses plus complexes), vous pouvez lier la couleur au champ et utiliser cette valeur

Le champ de couleur dans ce cas a juste une valeur hexadécimale#FF33FF


Voir la vidéo: QGIS Python PyQGIS - Select features from a vector layer