วิธีการสไตล์เลเยอร์จากคอนโซลหรือไม่


9

ฉันยังใหม่กับคอนโซล Python ของ QGIS ฉันพยายามโหลดเลเยอร์แรสเตอร์จากคอนโซลตั้งค่า crs และสไตล์เฉพาะจากไฟล์ qml

layerPath = os.path.join(raster_dir,raster_name)
fileInfo = QtCore.QFileInfo(layerPath)
baseName = fileInfo.baseName()
layer = QgsRasterLayer(layerPath, baseName)

ฉันต้องการตั้งค่าข้อมูลการฉายภาพแล้วโหลดไปยัง QGIS

QgsMapLayerRegistry.instance().addMapLayer(layer)

ฉันมีแรสเตอร์สีเทาบนหน้าต่าง ฉันจะตั้งค่าไฟล์ qml ให้โหลดได้อย่างไร

ขอบคุณสำหรับความช่วยเหลือของคุณ

คำตอบ:


17

ใช้QgsMapLayer :: loadNamedStyle

uri = "/home/user/style.qml"
layer.loadNamedStyle(uri) 

ขอบคุณสำหรับความช่วยเหลือของคุณโชคไม่ดีที่มันไม่ทำงาน จะเขียน uri อย่างไร
Renaud

ขอบคุณสำหรับความช่วยเหลือของคุณอย่างไรก็ตามฉันไม่สามารถจัดการให้มันทำงานได้เมื่อฉันรันคำสั่งต่อไปนี้
Renaud

1
ขอบคุณสำหรับความช่วยเหลือของคุณอย่างไรก็ตามฉันไม่สามารถจัดการเพื่อให้ทำงานได้เมื่อฉันเรียกใช้คำสั่งต่อไปนี้uri = "file:///home/renaud/palette.qml";layer.loadNamedStyle(uri) ฉันได้รับข้อความแสดงข้อผิดพลาด: ไม่พบรูปแบบในฐานข้อมูล ขอบคุณสำหรับความช่วยเหลือของคุณ? ฉันจะข้ามบรรทัดในโพสต์นี้ได้อย่างไร
Renaud

ดูเหมือนtheUriเป็นบิตทำให้เข้าใจผิด - (ie. โดยใช้ชื่อไฟล์ธรรมดาควรจะทำงาน/home/renaud/palette.qml)
JEF

ขอบคุณมันทำงานได้ดีในขณะนี้ อีกครั้งให้มันเรียบง่ายเป็นวิธีที่ดีที่สุด!
Renaud
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.