基于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环境

 

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

 

调用方法

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()

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值