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)线压缩算法