QGIS二次开发环境搭建(qgis-3.28.6+qt5.15)

演示QGis C++ API的使用,包括如下功能:

  • 加载各种格式数据
    • shapefile
    • gpx
    • gpkg
    • geojson
    • gml
    • kml
    • dxf
    • coverage目录
    • csv
    • spalialite数据库
    • memory,
    • wfs
    • raster栅格,
    • wms(在线高德,离线高德)
  • 地图符号化
    • 矢量点符号化
      • 单一符号(Single symbol)
        • 简单标记(Simple marker)
        • SVG标记(SVG marker)
        • 图片(Raster Image marker)
        • 动画标记(Animated marker)
        • 椭圆形标记(Ellipse marker)
        • 填充标记(Filled marker)
        • 字符标记(Font marker)
        • 几何生成器(Geometry generator)
        • 掩膜(Mask marker)
        • 矢量字段标记(Vector field marker)
      • 分类(Categorized)
      • 分级(Graduated)
      • 基于规则(Rule-based)
      • 点分布(Point displacement)
      • 点聚合(Point cluster)
      • 热力图(Heatmap)
    • 矢量线符号化
      • 简单线(Simple line)
      • 栅格线(Raster Line)
      • 箭头(Arrow)
      • 几何生成器(Geometry generator)
      • 短划线(Hashed Line)
      • 插值线(Interpolated Line)
      • 爆炸线(Lineburst)
      • 标记线(Marker line)
    • 矢量面符号化
      • 单一符号(Single symbol)
        • 仅渲染中心点(Centroid fill)
        • 几何生成器(Geometry generator)
        • 渐变填充(Gradient fill)
        • 使用线符号填充(Line pattern fill)
        • 使用点符号填充(Point pattern fill)
        • 随机标记填充(Random Marker Fill)
        • 栅格数据填充(Raster image fill)
        • SVG填充(SVG fill)
        • 形状炸裂填充(Shapeburst fill)
        • 简单填充(Simple fill)
        • 箭头渲染边界(Outline: Arrow)
        • 短划线渲染边界(Outline: Hashed Line)
        • 插值线渲染边界(Outline: Interpolated Line)
        • 爆炸线渲染边界(Outline: Lineburst)
        • 标记符号渲染边界(Outline: Marker line)
        • 栅格线渲染边界(Outline: Raster Line)
        • 简单线渲染边界(Outline: Simple line)
      • 反转面要素(Inverted polygons)
      • 2.5 D
    • 栅格数据符号化
      • Multiband color:多波段彩色
      • Paletted/Unique values:唯一值着色
      • Singleband gray:单波段灰度
      • Singleband pseudocolor:单波段伪彩色
      • Hillshade:山体阴影
      • Contours:轮廓
  • 地图标注,地图注释
  • 地图图表
    • 饼图(Pie Diagram)
    • 文本图(Text Diagram)
    • 直方图(Histogram)
    • 分段条形图(StackedBar Diagram)
  • 矢量数据操作:数据显示,数据选择,数据查询,空间索引,距离面积计算以及将图层写入文件
  • MapCanvas使用
    • 地图Canvas的使用:背景色,中心点,角度的修改
    • 地图工具(Map Pan,Map Zoom)的使用
    • RubberBand画线画多边形
    • VertexMarker的使用
    • 图层树的使用,在图层叶子节点右键菜单的实现
  • 内置算法的使用
    • 随机生成点

    • 按照参照面裁剪

    • Buffer缓冲区

cpp 复制代码
QT += core gui xml svg widgets

# 项目名称和版本
TEMPLATE = app
TARGET = ll_qgis_uav_realtime
VERSION = 0.1

# 语言和标准
CONFIG += c++17

# 包含当前目录
INCLUDEPATH += .

# 包含头文件搜索路径
INCLUDEPATH += ../ll_qgis_base_lib/

# 自动生成 UI 和 MOC 文件
FORMS += mainwindow.ui \
         paramdockwidget.ui

HEADERS += mainwindow.h \
           ../../inc/ld_geometry.h \
           ../../inc/ld_symbol_property.h \
           ../../inc/ldcommon.h \
           paramdockwidget.h

SOURCES += main.cpp \
           mainwindow.cpp \
           paramdockwidget.cpp


# 根据平台设置库路径
unix: LIBS += -L../ll_qgis_base_lib/ -lll_qgis_base_lib \
              -L../qgis/ -lqgis_app -lqgis_core -lqgis_gui -lqgis_analysis
win32: LIBS += -L$$PWD/lib/ -lll_qgis_base_lib

# LIBS +=              -L../qgis/ -lqgis_app -lqgis_core -lqgis_gui -lqgis_analysis

# 运行时输出目录
DESTDIR = $$PWD/../../bin

# 其他配置
CONFIG += console
CONFIG -= app_bundle

OSGeo4W_Path = C:/QGIS28
INCLUDEPATH += \
        $${OSGeo4W_Path}/include \
        $${OSGeo4W_Path}/apps/qgis/include

LIBS += \
        $${OSGeo4W_Path}/apps/qgis/lib/qgis_app.lib \
       $${OSGeo4W_Path}/apps/qgis/lib/qgis_core.lib \
        $${OSGeo4W_Path}/apps/qgis/lib/qgis_gui.lib \
        $${OSGeo4W_Path}/apps/qgis/lib/qgis_analysis.lib
# 注意:这个 .pro 文件假设 Qt 库和 qgis 库位于相对路径 ../ll_qgis_base_lib/ 和 ../qgis/。
# 如果实际路径不同,请相应地调整 INCLUDEPATH 和 LIBS 中的路径。
相关推荐
先知后行。几秒前
QT实现计算器
开发语言·qt
掘根1 分钟前
【Qt】常用控件3——显示类控件
开发语言·数据库·qt
GUIQU.7 分钟前
【QT】嵌入式开发:从零开始,让硬件“活”起来的魔法之旅
java·数据库·c++·qt
feiyangqingyun8 小时前
基于Qt和FFmpeg的安卓监控模拟器/手机摄像头模拟成onvif和28181设备
android·qt·ffmpeg
xiyangxiaoguo16 小时前
Qt中使用多线程的范式
qt
攻城狮7号18 小时前
【AI时代速通QT】第七节:Visual Studio+Qt 开发指南
c++·qt·跨平台·visual studio·qt vs tools
极地星光19 小时前
如何使用 Qt Creator 高效调试
qt
轩情吖19 小时前
Qt常用控件之QWidget(三)
开发语言·c++·qt·控件·cursor·qwidget·windowopacity
O_o38121 小时前
QT多窗口跳转
开发语言·qt
大橘1 天前
【qml-10】Quick3D实现机器人渲染(mesh)记录
qt·机器人·qml