掌桥专利:专业的专利平台
掌桥专利
首页

一种基于Web的三维地形表面积测量方法

文献发布时间:2023-06-19 10:41:48



技术领域

本发明涉及测绘技术领域,具体涉及一种基于Web的三维地形表面积测量方法。

背景技术

传统的二维WebGIS只是对地形的投影面积进行简单测量,无法真实有效测量三维地形的表面积,而且由于其自身的局限且存在高危险性的隐患,在一些人不能到达的区域无法进行测量。随着地理信息技术与互联网技术的快速发展,三维实景地形模型已经能够在浏览器中呈现。目前浏览器中主流的三维框架有Three.js以及Cesium.js。其中Cesium作为当前网络环境下最热门的WebGIS框架,可以呈现出真实有效的地形。三维WebGIS受到了越来越多的关注,其中对地形的测量是其中的一个热点。

Michael和Alexander使用新的Web技术(例如HTML5和WebGL),实现高效的客户端分析,旨在推动基于Web的3D地理空间分析发展。Leila和Paola考虑到计算地形可见性问题,概述了在规则网格和不规则网格解决地形表面的算法。王恒基于Cesium对地方大地测量平台数据库进行设计,提供了三维大地测量数据的展示、定位和查询;范俊甫对Cesium框架多源电子地图瓦片方案进行设计,为地理信息系统与遥感技术项目应用提供了一种高灵活、低成本的解决方案;朱栩逸等在GIS框架和Web服务的基础上,提出了一种基于Cesium的三维WebGIS搭建方案,并简单的实现了绘制功能;李伟等使用ArcGIS软件的三维分析功能,通过建立数字高程模型,使用不规则三角网(TIN),对鄱阳湖洪水淹没面积进行测量。

上述研究取得了较好的效果。但是目前的方法还无法满足Web环境下三维地形面积测量的现实需求,因此,本发明以三维开源地理信息框架(Cesium)和地形切片技术为基础,重点针对真实三维地形模型的表面积测量算法进行研究,为地形测量提供一种有效、可靠的测量手段。

发明内容

针对现有技术的不足,本发明提供了一种基于Web的三维地形表面积测量方法,可以准确的测量三维地形的表面积,并且弥补人工无法在高危险区域实地测量的缺陷,为三维地形测量提供了一种相对可靠的方案。

为实现以上目的,本发明通过以下技术方案予以实现:

本发明公开了一种基于Web的三维地形表面积测量方法,先对绘制的测量区域进行三角网切割,然后对切割后的三角形生成区域插值点,计算插值点高程,创建Delaunay三角格网,计算欧式距离,最后利用海伦公式求取所有三角形面积,即得三维地形的表面积。

优选的,采用耳切法对绘制的测量区域进行三角网切割,所述耳切法的具体步骤为:移除由n个顶点组成的简单多边形的其中一个耳朵顶点,将其存放到切割三角形数组中;剩余的顶点组成n-1个点的多边形,重复操作,直至剩余三个顶点,递归结束。

优选的,对切割后的每个三角形求取最小边界矩形,然后对每个最小边界矩形进行等间距插值,并判断每个点是否在三角形内部,获取到所有在三角形内部的点后,就能获取每个内部点的高程值。

优选的,等间距插值的过程为:已知两个点的坐标(x

f(x,y)=f(x

其中,w的计算公式为:

优选的,三角形内部的点的获取采用同向法,所述同向法为:沿着三角形ABC的三条边按照AB、BC、CA方向行走时,利用向量叉乘,三条边的起点分别连接点M;若三条边的向量积都为正,则该点在三角形内部;若有一个值为零,则该点在三角形的边线上;若有一条为负值,则该点在三角形外部。

优选的,每个三角形对应了插值后一个点的集合,对每个集合做三角格网化,具体采用Delaunay三角剖分算法实现,步骤为:

(1)创建一个包含所有散点的多边形或三角形,放入链表中;

(2)按照顺序将集合中的散点插入到步骤(1)创建的多边形或三角形中,在链表中找出外接圆包含插入散点的三角形,删除外接圆的公共边,形成Delaunay空腔;

(3)插入的散点连接Delaunay空腔上的顶点,形成新的三角格网;

(4)重复步骤(2)、(3),直至所有散点插入完毕。

优选的,利用海伦公式对三角格网中的每个三角形进行面积计算,海伦公式为:

其中,a、b、c分别为三角形三条边的长度,p为三角形的周长。

优选的,三角形每条边的长度采用欧式距离公式计算,n维欧式距离的计算公式如下:

其中,n表示维度,x、y表示在同一维度上的值。

本发明具备以下有益效果:

本发明首先结合耳切法、Delaunay三角格网算法与线性插值构建区域三角网,然后利用海伦公式来求取三维地形表面积。该方法可以辅助人们在地势陡峭难以测量的区域进行测量,例如滑坡面积测量以及露头岩层面积的测量,一定程度上减少了人们到高危险区域的危险性以及费时、费力的局限性,同时也具有高度灵活测量的优点。而且,实验结果表明,该方法可以准确的测量三维地形的表面积,并且弥补人工无法在高危险区域实地测量的缺陷,为三维地形测量提供了一种相对可靠的方案。

附图说明

图1为耳朵示意图;

图2为同向法示意图;

图3为空外接圆准则示意图;

图4为最小角最大准则示意图;

图5为三角格网示意图;

图6为投影面积效果图;

图7为贴地表面积图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

若未特别指明,实施举例中所用的技术手段为本领域技术人员所熟知的常规手段。

本发明公开了一种基于Web的三维地形表面积测量方法,先对绘制的测量区域进行三角网切割,然后对切割后的三角形生成区域插值点,计算插值点高程,创建Delaunay三角格网,计算欧式距离,最后利用海伦公式求取所有三角形面积,即得三维地形的表面积。

具体过程为:

一、区域切割

首先通过节点遍历获取绘制区域的形状,考虑到绘制的区域可能是任意形状的多边形,故需要对区域进行区域三角网切割,具体采用耳切法(Ear Clipping)对绘制的测量区域进行三角网切割,

耳切法的理论特性为:将连续顶点V

耳切法的具体步骤为:移除由n个顶点组成的简单多边形的其中一个耳朵顶点,将其存放到切割三角形数组中;剩余的顶点组成n-1个点的多边形,重复操作,直至剩余三个顶点,递归结束。

具体示例如图1所示,初始耳朵集合为{3,4,6,9},耳切法的算法过程为:

(1)将多边形顶点存储在一个双向链表中;

(2)遍历顶点寻找耳朵,将其存放在数组中;

(3)移除数组中的第一个耳朵顶点,将移除的三角形存放到切割三角形数组;

(4)重复上述步骤(2)、(3),直到剩余3个顶点,递归结束。

二、区域插值

根据切割后形成的三角形,对每个三角形求取最小边界矩形,最小边界矩形是以三角形三个顶点(x

f(x,y)=f(x

其中,w的计算公式为:

按照自定义精度(如误差小于0.01m)在矩形范围内进行线性插值,然后将每个点与三角形进行判断,判断点是否在三角形内部。

三角形内部的点的获取/判断采用同向法,同向法为:沿着三角形ABC的三条边按照AB、BC、CA方向行走时,利用向量叉乘,三条边的起点分别连接点M;若三条边的向量积都为正,则该点在三角形内部;若有一个值为零,则该点在三角形的边线上;若有一条为负值,则该点在三角形外部。相当于点M位于三角形内部时,点M始终位于AB、BC、CA的右侧,参考图2所示。获取到所有在三角形内部的点后,就能获取每个内部点的高程值(三维地形表面的每个点所对应的高度值),可以使用哈希表来存储每个点信息。

三、区域三角剖分

将任意多边形区域切割成互相独立的三角形,然后再对每个三角形的内部进行插值,由此每一个三角形对应了插值后一个点的集合。每一个集合要做一个三角格网化。本发明使用Delaunay三角剖分算法来对点集合进行三角格网创建。

Delaunay三角剖分算法有两个准则,一是空外接圆准则,二是最小角最大准则。空外接圆准则为:如图3所示,构成的三角形的外接圆不包含散点集合中其它的点。最小角最大准则为:如图4所示,散点集合在可能形成的三角格网中,Delaunay三角剖分算法所形成的每个三角形的最小内角要求在所有最小内角中取得最大的最小内角值。在图4中,左边图的最小角为∠ADC,根据最小角最大准则,图4右边的最小角为∠BCA并且大于∠ADC,所以Delaunay三角格网是图4右边剖分的情况。

地形三角格网剖分算法的步骤为:

(1)创建一个包含所有散点的多边形或三角形,放入链表中;

(2)按照顺序将集合中的散点插入到步骤(1)创建的多边形或三角形中,在链表中找出外接圆包含插入散点的三角形,删除外接圆的公共边,形成Delaunay空腔;

(3)插入的散点连接Delaunay空腔上的顶点,形成新的三角格网;

(4)重复步骤(2)、(3),直至所有散点插入完毕,最终完成线性插值产生的散点集合三角格网的创建。

上述步骤(2)、(3)的执行过程如图5所示。

四、区域面积求和

根据上述步骤获得的信息,利用海伦公式对三角格网中的每个三角形进行面积计算,海伦公式为:

其中,a、b、c分别为三角形三条边的长度,p为三角形的周长。

三角形每条边的长度采用欧式距离公式计算,n维欧式距离的计算公式如下:

其中,n表示维度,x、y表示在同一维度上的值。

最后将三角格网中三角形的面积逐一相加,得到三维地形表面积测量的结果。

下面结合具体的实施例对本发明进行进一步的阐述。

实施例

本发明以Cesium.js作为3D WebGIS前端框架,IIS服务器为地形服务提供数据响应,用Cesium Lab提供对地形切片的处理,以GeoServer为影像地图服务器。

Cesium是由JavaScript脚本语言编写的前端轻量级开源WebGIS框架,也是开源三维地图引擎。Cesium不需要其它任何浏览器插件支持,只需要浏览器支持WebGL功能即可,并且具有跨平台、跨浏览器的优点。GeoServer是开源地图服务器,能方便用户快速的发布地图影像数据。IIS是由微软公司开发的Web服务程序。

在现有的三维平台上,分别选取地势较为平坦、地势较为陡峭、大面积区域、小面积区域、凸多边形陡峭区域、凹多边形陡峭区域、凸多边形平坦区域、凹多边形平坦区域,共计8组相同控制点区域,利用传统的投影方式与本发明提出的三维地形面积测量方法(贴地面积)来进行实验。最终实验对比结果见表1。实验在地势陡峭区域的投影面积效果如图6所示,贴地表面积如图7所示,图6的投影面积为4805292.300平方米,图7的贴地表面积为5696831.239平方米。

表1 面积测量结果对比分析

由表1可知,在选择同样的控制点的情况下,投影面积始终小于贴地表面积,符合实验的预期结果。在地势较为平坦的情况下,投影面积和贴地表面积相差不是很大,在地势较为陡峭的区域,投影面积和贴地表面积相差较大,这两者从侧面验证了本发明提出方法的可靠性和准确性。

以上所述的实施例仅是对本发明的优选方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

相关技术
  • 一种基于Web的三维地形表面积测量方法
  • 一种基于WebGL三维的表面积计算方法及装置
技术分类

06120112639416