首页 > 解决方案 > 如何在 pyqgis 独立应用程序中加载和显示 S 57 文件

问题描述

我需要使用 pyqgis 3 显示一个 S 57 文件到目前为止我所做的是我已经创建了一个 QT 窗口,并且我正在尝试使用下面的代码在其中加载一个 S 57 文件

QMainWindow.__init__(self)
# Required by Qt4 to initialize the UI
self.setupUi(self)
# Set the title for the app
self.setWindowTitle("ShapeViewer")
# Create the map canvas
self.canvas = QgsMapCanvas()
# self.canvas.useImageToRender(False)
self.canvas.show()
# Lay our widgets out in the main window using a
# vertical box layout
self.layout = QVBoxLayout(self.frame)
self.layout.addWidget(self.canvas)
# layout is set – open a layer
#  Add an OGR layer to the map

file = QFileDialog.getOpenFileName(self, "Open S57file", ".", "S57files (*.000)")
fileInfo = QFileInfo(file[0])
# Add the layer
layer = QgsVectorLayer(file[0], fileInfo.fileName(), "ogr")

if not layer.isValid():
    print("Invalid Layer File")
    return


QgsProject.instance().addMapLayer(layer);   
self.canvas.setExtent(layer.extent())

图层有效,但窗口显示空白框,相同的 S-57 在不同的软件中正确显示。

标签: pythonpython-3.xqgis

解决方案


推荐阅读