2024-05-03 13:59:30 发布
网友
是的,有办法做到。但到目前为止,我发现我们需要将整个Qgis库复制到最终的软件包中。在代码中设置qgis应用的正确路径非常重要,如下所示:
QgsApplication.setPrefixPath(r"C:\OSGeo4W\apps\qgis", True) QgsApplication.initQgis() QgsProject.instance().setFileName(strProjectName)
我们还需要写入文件并在最后关闭它
QgsProject.instance().write() QgsApplication.exitQgis()
这是我创建的独立包的快照。代码需要修改一些变量才能工作。你知道吗
from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * from qgis.gui import * import os, datetime class CreateQgs(): def initQgsFile(self, outputFolder, stopRadius): strProjectName = str(outputFolder) + "\\" + "PhotoLocationMap.qgs" QgsApplication.setPrefixPath(r"C:\OSGeo4W\apps\qgis", True) QgsApplication.initQgis() QgsProject.instance().setFileName(strProjectName) highwayShapeFilePath = "C:/Shapefiles/Highway.shp" arterialShapeFilePath = "C:/Shapefiles/StreetsMajor.shp" highwayLayer = QgsVectorLayer(self.highwayShapeFilePath, 'HighwayDB' , 'ogr') arterialLayer = QgsVectorLayer(self.arterialShapeFilePath, 'ArterialDB', 'ogr') symbols = highwayLayer.rendererV2().symbols() sym = symbols[0] sym.setColor(QColor.fromRgb(255,94,94)) highwayLayer.triggerRepaint() symbols = arterialLayer.rendererV2().symbols() sym = symbols[0] sym.setColor(QColor.fromRgb(76,138,245)) arterialLayer.triggerRepaint() mapInstance = QgsMapLayerRegistry.instance() mapInstance.instance().addMapLayer(arterialLayer) mapInstance.instance().addMapLayer(highwayLayer) QgsProject.instance().write() QgsApplication.exitQgis() def unitTest(): app = QgsApplication(sys.argv, True) photoFolderPath = 'C:\Test\QGis\TestPics' CreateQgsFile = CreateQgs() CreateQgsFile.initQgsFile(photoFolderPath, 128) if __name__ == "__main__": unitTest()
是的,有办法做到。但到目前为止,我发现我们需要将整个Qgis库复制到最终的软件包中。在代码中设置qgis应用的正确路径非常重要,如下所示:
我们还需要写入文件并在最后关闭它
这是我创建的独立包的快照。代码需要修改一些变量才能工作。你知道吗
相关问题 更多 >
编程相关推荐