Ubah lebar goresan dari Milimeter ke unit peta

Aug 20 2020

Saya ingin mengubah lebar goresan dari mm menjadi unit peta. Kode di bawah ini sebagian besar diambil dari jawaban ThomasG77 dari pertanyaan sebelumnya. Sayangnya saya hanya menemukan cara untuk mengubah unit Label.

Gunakan kolom dalam tabel atribut untuk mengatur warna dan ketebalan garis secara otomatis

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()

Jawaban

2 Tobias Aug 21 2020 at 17:05

Saya akhirnya menemukannya.

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

melakukan pekerjaan itu