一种多地理信息平台下的场景融合可视化方法与流程

文档序号:16208997发布日期:2018-12-08 07:29阅读:333来源:国知局
一种多地理信息平台下的场景融合可视化方法与流程

本发明属于地理信息可视化领域,涉及一种多地理信息平台下的场景融合可视化方法。

背景技术

随着internet的爆炸性发展,webgis技术完善和扩展了传统gis技术,给众多用户提供了使用gis的机会。webgis技术具有良好的可扩展性和跨平台性。在互联网环境下,webgis可以实现全社会范围内各领域、各部门之间的空间数据信息的共享,极大地提高了空间信息的查询、发布和维护效率。

伴随着webgl技术和javascript等脚本语言的发展,人们对地理大数据可视化水平的需求日益提高,在国内外涌现出了像echarts、deckgl、mapbox等优秀的2.5维2维gis平台和一些开源数据库。每个平台和数据库都有自己的特点,比如echarts提供了直观,生动可交互的数据可视化图表,deckgl提供了不同类型的可视化图层,three.js可以创建包括摄像机、光影、材质等各种对象。然而,这些平台所创建的场景和实体相互独立,相互结合的水平较低。只依赖一个或少量的平台所创建的地理场景可视化水平较低,容易给用户造成审美疲劳。而多元化的,拥有丰富的地理元素的平台是高效,具有市场价值的gis平台。

与此同时,受技术限制,当前的三维gis技术还不能以较好的性价比满足大规模商业应用的需要,完全采用三维gis势必需要高昂的系统建设费用。基于二三维混合结构的gis设计是在当前背景下处理三维gis的一个较为实际的解决方案,所以必须突破二三维的低水平结合,实现紧密型的二三维结合。其中的核心问题是如何在三维系统中渲染二维数据。

因此,如何将多种二维地理场景与三维场景进行良好的融合,场景与场景之间形成良好的双向交互,可以作为一个整体进行渲染是我们需要解决的问题。

这些问题包括:1.webgis平台的地理场景和数据可视化形式的单一问题。2.2维或2.5维场景与3维底层平台数据和空间不一致性问题。3.完全三维gis开发的低性价比问题。



技术实现要素:

本发明所要解决的技术问题是针对背景技术的不足,提出一种多地理信息平台下的场景融合方法,其能够实现将多种维度,多种平台下的场景通过统一标准进行融合,达到同步渲染,同步操作。

本发明为解决上述技术问题采用以下技术方案:

一种多地理信息平台下的场景融合可视化方法,具体包含如下步骤:

步骤1、将多地理信息平台下的上层场景与底层场景进行融合同步;

步骤2、建立连接使上层场景与底层场景保持空间分析的一致性;

步骤3、通过判断机制循环渲染场景。

进一步的,本发明所提出的一种多地理信息平台下的场景融合可视化方法,所述步骤1具体包含如下步骤:

步骤1.1、创建底层webgis场景和上层场景,选取具有良好接口的三维gis平台作为底层,设置三维数字地球、基础图层、相机和渲染器;

步骤1.2、引入上层场景数据,且数据文件以json格式导入,以插件形式将上层场景导入到底层场景工程文件中;

步骤1.3、进行一系列的同步操作:同步地图投影;同步视锥体;建立双向交互功能;同步视图矩阵;同步方位角、倾角和距视图矩阵中心距离。

进一步的,本发明所提出的一种多地理信息平台下的场景融合可视化方法,在步骤1.3中,同步地图投影方法具体如下:

给定上层场景的坐标(x,y),(x,y)是墨卡托平面坐标,假设墨卡托投影的坐标系原点为(0,),则按照墨卡托投影公式完成地图投影:

(1)

其中,为经度,为纬度。

进一步的,本发明所提出的一种多地理信息平台下的场景融合可视化方法,在步骤1.3中,同步视锥体具体如下:

只有在视锥体六个面内的景物才是可见的,六个面包含上、下、左、右、近、远;透视投影矩阵为m:

(2)

其中,为视锥体在y方向的夹角,ratio为投影平面的纵横比,n和f分别是上层场景和下层场景距相机的距离。

进一步的,本发明所提出的一种多地理信息平台下的场景融合可视化方法,在步骤1.3中,建立双向交互功能具体方法如下:

将建立双向交互功能也就是建立事件触发机制,转换公式如下:

上层场景到底层场景的联动公式:h=h×map.scale/match(3)

底层场景到上层场景的联动公式:map.scale=h/h×match(4)

其中:h为底层地图中视角高度;h为全图视角高度;scale为上层场景的比例尺;match为上层场景到底层场景的匹配参数。

进一步的,本发明所提出的一种多地理信息平台下的场景融合可视化方法,在步骤1.3中,同步视图矩阵方法如下:

如果将观察者视为一个模型,则视图矩阵就是观察者的模型矩阵的逆矩阵;观察者平移了,相当于整个世界平移了

(5)

观察者绕z轴旋转了角度,相当于整个世界绕z轴旋转了-

(6)

观察者在三个方向等比例缩小s倍,相当于整个世界放大了s倍:

(7)。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1.本发明提出一种多地理信息平台下的场景融合方法,能够实现将多种维度,多种平台下的场景通过统一标准进行融合,达到同步渲染,同步操作;

2.本发明将单一的地理场景与数字地球结合,赋予了地理场景的空间坐标属性的同时提高了数字地球的可视化水平,实现了地球大数据元素的多元化,避免了webgis平台对单一的地理场景的依赖;

3.不同场景之间可以双向交互,实现了数据表现和空间分析的一致性;

4.本发明提供了一套跨平台、免插件、免安装的解决方案,有效降低了开发成本。扩展了多层次的场景展现能力,为场景之间的对比分析提供了良好的环境。

附图说明

图1是一种多地理信息平台下的场景融合方法流程图。

图2是底层场景和上层场景融合方法流程图。

图3是保持上层场景和下层场景空间分析一致性方法流程图。

图4是webgis场景循环渲染流程图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明:

本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

第一部分:

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明方法的机构框图,一种多地理信息平台下的场景融合可视化方法包括3个阶段:阶段1是底层场景和上层场景的融合;阶段2是控制上层场景和下层场景空间分析的一致;阶段3是webgis场景的循环渲染。

图2是底层场景和上层场景融合方法流程图。首先创建底层webgis场景和上层场景,选取具有良好接口的三维gis平台作为底层,设置三维数字地球、基础图层、相机和渲染器。然后引入上层场景数据库,数据文件以json格式导入,以插件形式将上层场景框架导入到工程文件中。此时上层场景与底层平台只是独立的两个canvas,相互叠加在一起被浏览器显示。接着进行一系列的同步操作:(1)同步地图投影:投影方法统一采用webmercator。利用投影公式计算得到2维或2.5维上层场景对应的3维坐标存入新的数组中,这样上层场景与三维坐标系统形成了对应。(2)同步视锥体:调节上层场景的相机,用上层场景的坐标与透视投影矩阵相乘,结果与底层面重合。(3)建立双向交互功能:在组件的类中设置state属性,某一场景改变会触发属性的改变,属性改变从而引起其他场景相应的操作,达到多个场景的联动和数据的一致性。(4)同步视图矩阵:将底层场景的视图矩阵设置为上层场景的视图矩阵。(5)同步方位角、倾角和距视图矩阵中心距离:取得底层场景方位角、倾角和距视图矩阵中心距离的数值存入数组中,用数组为上层场景的对应数据赋值。

图3是保持上层场景和下层场景空间分析的一致性流程图。上层gis平台提供高级空间分析功能。计算完成后将分析结果(layer、统计报表等)返回给底层平台,底层gis平台通过数据加载功能将分析结果加载到底层场景中,使得上层高级空间分析结果能在底层gis平台上直观展示。

图4是webgis场景循环渲染流程图。循环渲染下层和上层的webgis场景,每次循环要通过renderneeded和viewmatrix判断场景中的实体变化情况以及相机视图矩阵的变化情况。如果发生变化则对变化的实体进行重新渲染,如果没有变化则通过forcedpaus命令来强制暂停渲染操作。这种特征可以很好的优化计算机资源,提高运算效率。

第二部分:

下面详细说明本发明的技术方案及所依据的科学原理。

1.阶段2中的同步地图投影方法如下:

给定上层场景的坐标(x,y)。(x,y)是墨卡托平面坐标,假设墨卡托投影的坐标系原点为(0,),则按照墨卡托投影公式完成地图投影:

(1)

其中,为经度,为纬度。

墨卡托投影的“等角”特性保证了场景方向和相对位置的正确性,确保了gis平台查询地物方向不会出错。同步后的坐标系统要统一,一般选取wgs84;

2.阶段2中的同步视锥体方法如下:

只有在视锥体(上、下、左、右、近、远)六个面内的景物才是可见的。透视投影的目的就是将棱台转换为一个立方体(cuboid)。保证从相机视角看到上层和底层场景的完全重合。透视投影矩阵为m:

(2)

为视锥体在y方向的夹角,ratio为投影平面的纵横比,n和f分别是上层场景和下层场景距相机(棱锥的椎顶)的距离。

3.阶段2中的建立双向交互功能方法如下:

将建立双向交互功能也就是建立事件触发机制,转换公式如下:

上层场景到底层场景的联动公式:h=h×map.scale/match(3)

底层场景到上层场景的联动公式:map.scale=h/h×match(4)

其中:h为底层地图中视角高度;h为全图视角高度;scale为上层场景的比例尺;match为上层场景到底层场景的匹配参数。

4.阶段2中的同步视图矩阵方法如下:

模型视图矩阵的作用是:乘以一个点坐标,获得一个新的点坐标,获得的点坐标表示点在世界里变换。如果将观察者视为一个模型,那么视图矩阵就是观察者的模型矩阵的逆矩阵。观察者平移了,相当于整个世界平移了

(5)

观察者绕z轴旋转了角度,相当于整个世界绕z轴旋转了-

(6)

观察者在三个方向等比例缩小s倍,相当于整个世界放大了s倍。

(7)

第三部分:

具体实现步骤如下所述:

step1:依据框架结构,将一种多地理信息平台下的场景融合方法的生命周期分为初始加载—加载—渲染—加载结束。初始加载时,基于三维数字地球引擎cesium,定义一个球体作为基础球体,再输入第三方的webgis场景作为上层场景。为基础球体添加高德地图作为底图渲染。

step2:所请求的地图瓦片以一个球体上方的扇面的形式渲染到球体上。如图2中的同步地图投影,当瓦片请求并传输完成时,使用瓦片的索引值(当前为2052,431)计算该瓦片(底层场景)起始点的web墨卡托地理坐标p1[-157517.079,6842183.225],利用web墨卡托投影的地理坐标来计算该上层场景所对应的球体上的经纬度位置p2[-1.415,52.232](公式1)。

step3:如图2中的同步视锥体,调整相机位置,以p2作为当前视点,利用当前视点和视锥体边界点(左上,左下,右上以及右下点)的世界坐标,以视点为顶点做射线与三维地球做拾取检测。在检测射线与三维地球具有交点时,利用交点的世界坐标计算所在视窗请求影像的地理坐标范围,由公式2得到矩阵

如果所有上层场景的顶点都在视锥范围内,则待判区域一定在视锥范围内;如果只有部分顶点在视锥范围内,则待判区域与视锥体相交,我们同样视为可见;如果所有顶点都不在视锥范围内,那么待判区域为不可见。

step4:如图2中的建立双向交互功能,通过设置状态指数来监听场景的变化,建立事件触发机制。当上层场景高度变化时,状态指数state也发生变化,此时触发了执行函数,获取到当前map.scale为5.25,通过公式(3)重新计算得到底层场景的高度值为1550370.0351。作为最后渲染的参数。这样就保证了上下层的联动和数据的一致性。

step5:如图2中的同步方位角、倾角和距视图矩阵中心点距离。分别设置状态参数方位角、倾角和距视图矩阵中心点距离初始值为-27.39、40.5、4500。当用户操作球体转动时,底层场景相对视点的方位角、倾角和距视图矩阵中心点距离发生变化,状态参数立刻更新(此刻参数为-26.39、40.5、4500),将参数赋值给上层场景。

step6:如图3保持空间分析的一致性。底层场景中的地物都对应于上层场景的某一个或某几个实体或矢量数据。也即是三维gis平台通过wfs共享二维gis平台的矢量数据源,在进行数据查询、数据增加、数据编辑、数据删除等操作时,

根据具体需求,上层场景数据分析计算得到结果(坐标),存入数组positions中。底层场景选取合适的可视化形式创建几何实体,如创建线段来表示交通道路,创建圆点表示事件发生位置。当视角变小时,根据step3中的视锥体确定可视范围,一般选取曲线或者多边形作为分析数据的将所得数据设为曲线或多边形的位置position属性。这样上层场景的分析结果就可以在底层显示出来。达到多地理场景空间分析的一致性。

step7:如图4循环渲染下层和上层的webgis场景,每次循环要判断场景中的实体变化情况以及相机视图矩阵的变化情况,实体与视图矩阵都没有变化的场景不执行渲染操作,否则进行渲染操作。这样可以避免重复性操作,减小内存使用率,使加载过程更加流畅。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1