Đoạn mã sau hoạt động tốt trong QGIS 2.x, tuy nhiên nó không hoạt động trong QGIS 3.x.
myDir = 'd:/work/output_folder/'
layers = iface.legendInterface().layers()
pipe = QgsRasterPipe()
for layer in layers:
extent = layer.extent()
width, height = layer.width(), layer.height()
renderer = layer.renderer()
provider=layer.dataProvider()
crs = layer.crs().toWkt()
pipe.set(provider.clone())
pipe.set(renderer.clone())
opts = ["COMPRESS=LZW"]
file_writer = QgsRasterFileWriter(myDir + layer.name() + ".tif")
file_writer.setCreateOptions(opts)
file_writer.writeRaster(pipe,
width,
height,
extent,
layer.crs())
Đây là lỗi tôi gặp phải khi chạy mã:
Traceback (most recent call last):
File "C:\PROGRA~1\QGIS3~1.0\apps\Python36\lib\code.py", line 91, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
AttributeError: 'QgisInterface' object has no attribute 'legendInterface'
Có ai biết cái gì đã thay thế 'LegendInterface' trong phiên bản mới hoặc những thay đổi khác mà tôi có thể phải thực hiện để chạy cái này trong QGIS 3.0 không?