Более

Получить цвет текущей функции в построителе выражений QGIS?

Получить цвет текущей функции в построителе выражений QGIS?


В QGIS Expression builder. Я хочу получить цветовой код текущей функции.

Я имею в виду:

Мой слой состоит из линий, каждая из которых окрашена в свой цвет. Теперь я хочу присвоить этот цвет его метке. Как я могу получить этот атрибут в определении метки в построителе выражений свойства цвета?

Я старался:

атрибут ($ currentfeature, 'цвет')

Но это не работает…


В QGIS> = 2.14 вы можете использовать переменную symbol_color. Например, установите переопределение данных для цвета метки для выражения@symbol_color


Это можно сделать. Конечно, с QGIS ответ, как правило, положительный.

Давайте возьмем наш векторный слой с некоторыми обычными метками и символами:

Теперь добавьте определенный цвет данных для буфера:

Щелкните Edit и выберите редактор функций.

Щелкните новый файл и дайте ему имя (называемое mine colorfuncs)

Вставьте следующий код

from qgis.core import * from qgis.gui import * @qgsfunction (args = 'auto', group = "Custom") def symbol_color (layername, feature, parent): layer = QgsMapLayerRegistry.instance (). mapLayersByName (layername) [ 0] r = layer.rendererV2 () symbol = r.symbolForFeature (feature) values ​​= symbol.color (). GetRgb () return "{}, {}, {}, {}". Format (* values)

Должно получиться так:

Ударить Запустить скрипт

Вернитесь на вкладку выражений и воспользуйтесь новой функцией:

symbol_color ('Ямы')

Мы должны дать ему имя, потому что выражения не знают о слое, а только об объекте.

Нажмите "ОК" и "Применить". БАМ!

хм почти. Нам просто нужно настроить прозрачность буфера:

БАМ!


Смотреть видео: QGIS Quick Tip - Python, SQL and Virtual Layers