python - 如何在 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 在不同的软件中正确显示。
解决方案
推荐阅读
- c# - 启用 TypeNameHandling 的 JsonConvert 序列化/反序列化锯齿状数组
- java - kitkat上的android studio webview相机权限
- git - Git:重置合并提交
- python - 为什么xgboost不能处理这个简单的中文句子案例?
- flask-sqlalchemy - Flask-SQLAlchemy 通过亚马逊 RDS
- css - 怎么做
标记为另一个的父级
jsx中的标签?
- ruby - 如何从 ducusign_rest gem 自动填充 txt
- python - 将 for 循环更改为 while 循环以进行非范围 for 循环
- kubernetes - 如何让calico使用K8s etcd?
- oracle - 如何设置工作区身份验证以使用 SSO for Oracle APEX Server?