Измените ширину штриха с миллиметров на единицы карты

Aug 20 2020

Я хочу изменить ширину штриха с мм на единицы карты. Приведенный ниже код в основном взят из ответа ThomasG77 на предыдущий вопрос. К сожалению, я нашел способ изменить единицы измерения меток.

Используйте столбцы в таблице атрибутов для автоматической установки цветов и толщины линии

layer = iface.activeLayer()

# Get colors in rgb codes from Attribute table
layer.renderer().symbol().symbolLayer(0).dataDefinedProperties().property(QgsSymbolLayer.PropertyStrokeColor).setExpressionString("\"Farben\" || ',255'")
layer.renderer().symbol().symbolLayer(0).dataDefinedProperties().property(QgsSymbolLayer.PropertyStrokeColor).setActive(True)


# Get Stroke width from Attribute table
layer.renderer().symbol().symbolLayer(0).dataDefinedProperties().property(QgsSymbolLayer.PropertyStrokeWidth).setExpressionString("\"Linien\"")
layer.renderer().symbol().symbolLayer(0).dataDefinedProperties().property(QgsSymbolLayer.PropertyStrokeWidth).setActive(True)


# Refresh rendering of the layer
layer.triggerRepaint()

Ответы

2 Tobias Aug 21 2020 at 17:05

Я наконец нашел это.

layer.renderer().symbol().symbolLayer(0).setWidthUnit(QgsUnitTypes.RenderMapUnits)

делает работу