qgis 图片_QGis二次开发笔记Qgslayout渲染专题图

2020-10-25

好久没有弄Qgis开发了。最近有一个项目需要后台定时生产专题图,要求能够叠加边界矢量,叠加经纬度网格,绘制图例,绘制文字标签等。想来想去,排除了python的那类科学家用的绘图工具matplot什么的,排除了gnuplot太不好用了,这类工具相对遥感和GIS来说出图能力不够专业。那么剩下就的就是PyQgis和原生Qgis二次开发了。我的C++相对更熟一些,况且python写的东西总觉得不像个业务化的程序,因此确定重新捡起C++ Qgis的二次开发。

考虑到需求不要求交互,因此想直接使用QTCreator进行开发,减少配置VS2019方面的工作。

1.下载OSGeo4W 32bit版本。

2.在线安装QGis的相关包,目前应该是3.10.10的运行包和开发包。

3.下载QT开发工具qt-opensource-windows-x86-5.14.2.exe并安装。

4.打开QTCreator (4.11.1)

ecd7acfa2996331ff082bacba7460f7d.png

707c5601ac157df115b8e1c3dd917f1c.png

36077e87acb5cc318543c0c83cf1cfb5.png

c67f718325705cceb5f7784987b65131.png

23d6ecda6ebef661ff4c8b6cc909c5ea.png

5.选择项目配置(已经配好了msvc,之前如何配置的已经不记得了,应该问题不大。)

7f49125479387e64831d328e20d6a3e8.png

44dc1408c3a6b24cc1aee10f30aa5c51.png

6.使用Release模式编译

5d4a9f9854a20f8fa73192cdf5d9f2c2.png

7.使用自动生成的main.cpp编译运行一下程序

会生成D:codingbuild-testQgslayout-msvc-Releaserelease 这个目录

8.把Qt和Qgis相关的dll和目录都考到这个目录下面

拷贝必要的文件和内容后,效果如下面这个样子:

ec6154c32be71ad0d656caf4be7ccc32.png

ac0eb41a5807811baa830a7bd7a633b8.png

638bb5d11dff74612bbefd5cf81fd457.png

1ebf4873ddac986c30d145b1ba656b8c.png

9.修改pro文件

按照这个配就对了,如果缺了哪个就不会编译成功。

597f9eabd6f2b8a056c7e2931cf98daa.png
QT += core gui xml widgets webenginewidgets

CONFIG += c++11 console
CONFIG -= app_bundle

DEFINES += QT_DEPRECATED_WARNINGS

SOURCES += 
        main.cpp

#QGIS
INCLUDEPATH += "C:OSGeo4Winclude"
INCLUDEPATH += "C:OSGeo4Wappsqgis-ltrinclude"
INCLUDEPATH += "C:QtQt5.14.25.14.2msvc2017include"
INCLUDEPATH += "C:QtQt5.14.25.14.2msvc2017includeQtWidgets"
INCLUDEPATH += "C:QtQt5.14.25.14.2msvc2017includeQtPrintSupport"
INCLUDEPATH += "C:QtQt5.14.25.14.2msvc2017includeQtSvg"
INCLUDEPATH += "C:QtQt5.14.25.14.2msvc2017includeQtWebEngineWidgets"

LIBS += -L"C:QtQt5.14.25.14.2msvc2017lib"
LIBS += -L"C:OSGeo4WappsQt5lib"
LIBS += -L"C:OSGeo4Wappsqgis-ltrlib" -lqgis_core -lqgis_gui -lqgis_app

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

10.编写代码main.cpp如下

#define _USE_MATH_DEFINES 

11.编译运行最后出图结果如下

47482ac5cbfcb79aa4c311c09957a99c.png

(完)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值