雖然在這個問題上有一些帖子,但其中任何一個都沒有答案。這就是爲什麼我再問一次。如何使用PyQGIS加載柵格圖層?
一後我發現了https://gis.stackexchange.com/questions/68032/raster-layer-invalid
我讀了下面的鏈接信息:https://hub.qgis.org/wiki/17/Arcgis_rest。
我使用了命令:gdal_translate「http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json&pretty=true」s.xml - of WMS。它成功生成了文件。但是,當我嘗試打開文件並假定提供程序是wms時,代碼報告圖層無效。
我使用的代碼是:
file = QFileDialog.getOpenFileName(self,
"Open WMS", ".", "WMS (*.xml)")
fileInfo = QFileInfo(file)
# Add the layer
layer = QgsRasterLayer(file, fileInfo.fileName(),"wms")
if not layer.isValid():
print "Failed to load."
return
我只是選擇從對話框中的文件。
我也嘗試了其他命令:qgis.utils.iface.addRasterLayer(「http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json&pretty=true」,「raster」 )通過使用以下代碼:
layer = QgsRasterLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json&pretty=true", "layer")
if not layer.isValid():
print "Failed to load."
return
它也報告「加載失敗」。原始命令可以在QGIS python命令行中成功運行。另外,如果我嘗試在python控制檯中輸入代碼,那麼layer.isValid()將返回true。它在獨立腳本中不起作用。