完整的Qgis系统库 ——qis_app库

完整的Qgis系统库 ——qis_app库


发布日期: 2015-07-20 更新日期: 2015-07-20 编辑:bukun 浏览次数: 4998

标签:

摘要: 一、概述 qgis_app是一个完整的gis系统,可以将所有的部件作为二次开发的部分使用,甚至可以直接使用整个系统作为一个部件。 qgis_app具有一个完整的GIS主界面和多个plugin插件,这些插件与plugin之间使用python进行交互。因此完整的使...

一、概述

qgis_app是一个完整的gis系统,可以将所有的部件作为二次开发的部分使用,甚至可以直接使用整个系统作为一个部件。

qgis_app具有一个完整的GIS主界面和多个plugin插件,这些插件与plugin之间使用python进行交互。因此完整的使用app,需要使用python和相关插件的支持。对于每一种插件,需要同时具有python脚本和dll库才能正常使用。

二、原理

qgisApp作为一个主窗体,是QMainWindow的派生类。可以直接作为QgsApplication的活动窗体运行。注意,qgisApp需要设置一个启动界面(QSplashScreen)和是否加载插件的选项。

由于qgisApp中使用python作为插件交互的平台,所以一定要指定python的工作目录PYTHONHOME=….(放在debug的enviroment或者系统环境变量中)。

由于qgisApp需要使用很多插件,所有需要设置一个配置文件(qgsconfig.h,由cmake指定)和插件的位置(把install中的所有文件放在exe同级目录下)。

qgisapplication:用于代替QApplication,可以指定配置文件目录(程序使用的配置文件,用于存储一些个人喜好设置等。),如果不指定,或指定目录无效,则默认使用当前用户的用户文档(C:/document and setting/user/.qgis2)。

三、使用方法

1.准备

设置环境变量:项目属性-》debugging-》enviroment:设置PYTHONHOME。

设置qgis的头文件目录(由于qgis_app中含有其它头信息,不在基本库之内,所有需要指向app源程序代码和编译生成的ui,qgspluginmanager,python这个应该在编译的时候可以设置:todo)。

"F:\DevelopWare\OGC\QGIS\qgis-latest\sourcecode\src\app";

"F:\DevelopWare\OGC\QGIS\qgis-latest\vc2008_bak\build2008\src\ui";

"F:\DevelopWare\OGC\QGIS\qgis-latest\sourcecode\src\app\pluginmanager";

"F:\DevelopWare\OGC\QGIS\qgis-latest\sourcecode\src\python"

添加库引用文件:加入qgis_app.dll/lib

把Install(C:\programfiles(x86)\qgis2.4.0)下所有文件copy到exe目录下,因为qgisapp会在同级目录下寻找插件(也可以在qgsconfig.h中手动指定)。

2.逻辑(vs)

(1)使用QgsApplication代替QApplication

(2)生成QgisApp的对象作为mainwindow

需要指定QSplashScreen

(3)运行

完整代码参见:qgis开发-代码-demo\qgisapp_demo

#include "qgisapp_demo.h"

#include 

#include 

#include 

#include 

#include 

#include 

int main(int argc, char *argv[])

{

    QgsApplicationa(argc, argv,true,QString());



    QPixmap pixmap("D:/test/splash.png");

    QSplashScreen*pSplash = new QSplashScreen(pixmap);

    QgisApp *pQgis = new QgisApp(pSplash,true,0,Qt::Window);

    pQgis->show();



    int iRet = a.exec();

    delete pQgis;

    pQgis = NULL;

    return iRet;

}

3.逻辑(qt)

qt与vs基本相同,但运行时出现R6034问题多次,这是由于VC9的版本不对。解决办法是将qgis install(C:/programfiles(x86)下的msvcrt9相同的全部删除。

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org