Làm thế nào để tạo kiểu cho một layer từ console?


9

Tôi chưa quen với giao diện điều khiển python của QGIS. Tôi đang cố gắng tải một lớp raster từ bàn điều khiển, đặt crs và một kiểu cụ thể từ tệp qml.

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

Tôi muốn thiết lập thông tin trình chiếu và sau đó tải nó vào QGIS

QgsMapLayerRegistry.instance().addMapLayer(layer)

Tôi có một raster màu xám trên các cửa sổ. Làm cách nào để thiết lập tệp qml để tải?

Cảm ơn bạn đã giúp đỡ

Câu trả lời:


17

sử dụng QssMapLayer :: loadNamedStyle

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

Cảm ơn sự giúp đỡ của bạn, thật không may, nó không hoạt động. Làm thế nào sẽ viết uri?
Đổi mới

Cảm ơn sự giúp đỡ của bạn, tuy nhiên tôi không thể quản lý để nó hoạt động. Khi tôi chạy lệnh sau
Renaud

1
Cảm ơn sự giúp đỡ của bạn, tuy nhiên tôi không thể quản lý để nó hoạt động. Khi tôi chạy lệnh sau uri = "file:///home/renaud/palette.qml";layer.loadNamedStyle(uri) tôi nhận được thông báo lỗi: Kiểu không tìm thấy trong cơ sở dữ liệu. Cảm ơn sự giúp đỡ của bạn ? Làm thế nào để tôi nhảy dòng trong bài này?
Đổi mới

trông giống như theUrilà một chút sai lệch - (. tức là sử dụng tên tập tin đơn giản nên làm việc /home/renaud/palette.qml)
Jef

Cảm ơn bạn, nó đang hoạt động tốt bây giờ. Một lần nữa, giữ cho nó đơn giản là cách tốt nhất!
Đổi mới
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.