1.GitHub项目地址

https://github.com/Just-Coder-2000/GISBag

2.项目简介

该项目为C++语言编写的GIS包,包含但不局限于:

1.GIS空间矢量元素的数据结构描述

如二维点、线、多边形、圆弧段、三角形、矩形、圆等。

2.GIS空间矢量元素的相关操作

相关方法已封装在类中,如空间二维元素的面积、周长,线的方位角等。

3.GIS空间矢量元素之间的拓扑判断

如点在线左侧、点在三角形内部等。

4.有关二维向量的相关计算

如点积、叉积。

5.根据选择器,随机在指定矩形内生成相应的空间元素

如生成一个指定圆内的多个点等。

6.为加快对空间元素的操作,提供了点的数据库类以及基于简单空间元素数据描述的参考类

如针对line2d数据结构,提供了RefLine的类。该参考类提供了线的ID、组成线的点的ID以及挂载到的数据库地址。通过对点的ID,可在空间数据库中搜寻到该点。为加快搜寻,数据库采用map容器存储参考点。

7.相关的GIS空间要素模型

如TIN的构建、泰森多边形的构建、线的压缩算法{光栏法、道格拉斯普克法、垂距法}、凸包的生成等。

8.空间快速索引树-KdTree的构建

利用已知点二维平面坐标,构建KdTree,并提供基于KdTree的最邻近搜索可KNN搜索。

3.案例举例

(1)TIN不规则三角网的构建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)泰森多边形的构建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)线压缩算法

原始数据

在这里插入图片描述

垂距法压缩线要素

在这里插入图片描述

道格拉斯-普克法压缩线要素

在这里插入图片描述

光栏法法压缩线要素

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐