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
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'