本文假定:
1. 采用qgis官方发布的安装程序(如QGIS-OSGeo4W-2.18.13-1-Setup-x86.exe安装包)
2. 使用默认的安装位置,即C:\Program Files\QGIS 2.18,如指定到其他目录,请修改对应的设定。
3. 假定示例数据目录为D:\QGIS\数据\
第一:设定环境变量
SET OSGEO4W_ROOT=C:\Program Files\QGIS 2.18 SET QGIS_PREFIX=%OSGEO4W_ROOT%\apps\qgis SET PATH=%QGIS_PREFIX%\bin;%OSGEO4W_ROOT%\bin SET PYTHONPATH=%QGIS_PREFIX%\python;%OSGEO4W_ROOT%\apps\Python27 SET PYTHONHOME=%OSGEO4W_ROOT%\apps\Python27 SET GDAL_DATA=%OSGEO4W_ROOT%\share\gdal
即在cmd下执行上述命令,若路径不一致,请自行修改。
第二:运行一个样例
# -*- coding: utf-8 -*- import os,os.path,sys from qgis.gui import * from qgis.core import * from PyQt4 import QtGui app = QtGui.QApplication([]) QgsApplication.setPrefixPath(os.environ['QGIS_PREFIX'],True) QgsApplication.initQgis() main_win = QtGui.QMainWindow() frame = QtGui.QFrame(main_win) main_win.setCentralWidget(frame) grid_layout = QtGui.QGridLayout(frame) map_canvas=QgsMapCanvas() grid_layout.addWidget(map_canvas) map_canvas.setCanvasColor(QtGui.QColor(255,255,255)) layer=QgsVectorLayer(ur'D:\qgis\数据\bou2_4p.shp','border','ogr') QgsMapLayerRegistry.instance().addMapLayer(layer) canvas_layer=QgsMapCanvasLayer(layer) map_canvas.setLayerSet([canvas_layer]) map_canvas.zoomToFullExtent() main_win.show() # Need the following statement if running as a script app.exec_()
可在前述cmd环境下运行python,将此代码粘贴进来运行。
第三,说明:
layer=QgsVectorLayer(ur'D:\qgis\数据\bou2_4p.shp','border','ogr')
这个语句,如目录名称中不含中文,则路径前的u可以移除。当然,也可以这样写:
layer=QgsVectorLayer(u'D:\\qgis\\数据\\bou2_4p.shp','border','ogr')
同时,建议在python下逐行执行来理解代码。
发表回复