基于pycharm的QGIS-API调用方法

前言

         最近在QGIS中使用了内置的python console以及自带的处理算法解决问题,但python console内置在软件内部,想要使用必须打开QGIS,而且计算效率低。因此,希望能够在软件外部调用QGIS的API和算法等。

         一开始希望使用anaconda内的spyder作为python IDE来实现,但使用过程中发现,anaconda本身的运行的python环境和QGIS的python环境不兼容,暂时没解决,所以计划使用pycharm作为独立的IDE,来运行QGIS的python环境。

环境配置

1.环境变量配置

将QGIS相关的路径配置到环境变量当中;

PATH变量

C:\software\QGIS\apps\qgis-ltr\bin
C:\software\QGIS\apps\Python37

PYTHONPATH变量

C:\software\QGIS\apps\qgis-ltr\python;
C:\software\QGIS\apps\qgis-ltr\bin;
C:\software\QGIS\apps\qgis-ltr\python\qgis;

(其中的qgis-ltr也可能是qgis,根据自己的目录设置)

2.配置pycharm环境

打开file->setting,设置Python Interpreter;点击add,添加\QGIS\bin\python-qgis-ltr.bat作为python环境

 

基于pycharm的QGIS-API调用方法_第1张图片

当然,也可以在一开始新建项目的时候就指定好python环境。选择QGIS的python解释器

 

基于pycharm的QGIS-API调用方法_第2张图片

调用方法

QGIS的API是由C++写的,后面封装成python包,调用API一般需要同时使用到dll文件和python的包才行。因此,导入qgis的包后,也不能直接使用。可以使用以下的框架,来激活qgis的环境,在其中写入自己的代码。

from qgis.core import *


# supply path to qgis install location

QgsApplication.setPrefixPath("/path/to/qgis/installation", True)

# create a reference to the QgsApplication

# setting the second argument to True enables the GUI, which we need to do

# since this is a custom application

qgs = QgsApplication([], True)

# load providers

qgs.initQgis()


# Write your code here to load some layers, use processing algorithms, etc.



# When your script is complete, call exitQgis() to remove the provider and

# layer registries from memory

qgs.exitQgis()

 

你可能感兴趣的:(GIS,python,gis)