J'ai le même problème avec les cartes géologiques dans QGIS 2.10. Les cartes fournies ont un code couleur CMJN (en fait "YMCK") qui peut être interprété avec la formule suivante:
color_cmyk(
CASE WHEN substr("COLOR_CODE",3,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",3,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",3,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",3,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",3,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",3,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",3,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",3,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",3,1 ) IS 8 THEN 80
ELSE 100
END,
CASE WHEN substr("COLOR_CODE",2,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",2,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",2,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",2,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",2,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",2,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",2,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",2,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",2,1 ) IS 8 THEN 80
ELSE 100
END,
CASE WHEN substr("COLOR_CODE",1,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",1,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",1,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",1,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",1,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",1,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",1,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",1,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",1,1 ) IS 8 THEN 80
ELSE 100
END,
CASE WHEN substr("COLOR_CODE",4,1 ) IS 0 THEN 0
WHEN substr("COLOR_CODE",4,1 ) IS 1 THEN 7
WHEN substr("COLOR_CODE",4,1 ) IS 2 THEN 14
WHEN substr("COLOR_CODE",4,1 ) IS 3 THEN 21
WHEN substr("COLOR_CODE",4,1 ) IS 4 THEN 31
WHEN substr("COLOR_CODE",4,1 ) IS 5 THEN 42
WHEN substr("COLOR_CODE",4,1 ) IS 6 THEN 54
WHEN substr("COLOR_CODE",4,1 ) IS 7 THEN 67
WHEN substr("COLOR_CODE",4,1 ) IS 8 THEN 80
ELSE 0
END)
mais cela donne la couleur noire dans les boîtes de légende.
J'ai donc pensé pouvoir résoudre le problème en utilisant le script ci-dessus pour calculer un nouveau champ de couleur qui fonctionnait assez bien et renvoyait les valeurs RVB telles que 255 200 220. J'ai essayé
Color_rgb("Color")
pour produire une couleur définie par les données sans aucune chance (formule invalide)! J'ai donc analysé le champ de couleur en 3 champs - Rouge, Vert et Bleu et la formule suivante -
color_rgb("Red","Green","Blue")
dans la boîte de formule de couleur définie par les données a donné la bonne couleur sur la carte et la légende n'est plus noire - mais utilise les paramètres de rampe de couleur pour déterminer la couleur de la légende.
Il semble que nous ayons besoin d'une option dans la liste déroulante de la rampe de couleurs pour spécifier les couleurs définies par les données, puis il devrait utiliser la couleur définie par les données pour produire la légende.
Tous les autres contournements sont corrects, mais lorsque vous utilisez le filtre de légende sur le composeur de carte, vous voulez obtenir le bon résultat et ne pas avoir à aller dans chaque boîte de légende et taper les codes RVB dans les options de couleur choisies.