演示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)
- 单一符号(Single symbol)
- 矢量线符号化
- 简单线(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
- 单一符号(Single symbol)
- 栅格数据符号化
- 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 中的路径。