集成二、三维平台的管线数据同步及联动方法

文档序号:6551101阅读:169来源:国知局
集成二、三维平台的管线数据同步及联动方法
【专利摘要】本发明涉及一种集成二、三维平台的管线数据同步及联动方法。二维和三维地理信息系统平台相互独立,难以进行很好的通讯。本发明构建了统一的集成二、三维平台的应用系统框架,通过分屏实现二维模块与三维模块的对比显示,并通过二维模块向三维模块发送视图联动消息和数据实现二维视图变化后三维视图随之变化、通过管线数据同步时需要发送的消息实现二维视图内管线数据更新后三维视图同步更新、通过三维模块向二维模块发送视图联动消息和数据实现三维视图变化后二维视图随之变化。本发明解决了二三维视图的平移、旋转、缩放的联动问题,并实现了管线数据在二三维模块中的同步。
【专利说明】集成二、三维平台的管线数据同步及联动方法

【技术领域】
[0001] 本发明属于地理信息平台【技术领域】,具体涉及一种集成二、三维平台的管线数据 同步及联动方法。

【背景技术】
[0002] 近年来,图形硬件设备和图形学算法的迅猛发展有力地推动了空间信息可视化技 术的发展,人们已经初步实现了对地理环境的真实仿真,这种仿真能够较好地重现现实景 观。城市三维可视化系统的研究在城市信息化领域的发展非常迅速,其具有代表性的研究 成果即是人们比较熟悉的数字城市模型,国内外在这一方面已经有一系列具有代表性的成 果,在城市景观模拟、城市发展规划、城市管网、数据可视化等方面有着广泛的应用。
[0003] 在三维地理信息系统技术快速发展的同时,传统的二维地理信息系统技术并没有 退出历史舞台,由于其数据的概括性高、空间分析算法成熟,二维地理信息系统技术依然有 着强大的生命力。在现实需求中,技术人员既需要二维平台中的数据的高度概括性及应用 的便捷性,又需要三维平台中真实性和直观性,因此二三维一体化软件成为当前地理信息 技术发展的主流方向之一。
[0004] 然而,当前的技术现实是,二维地理信息系统平台和三维地理信息系统平台往往 是两个相互独立的软件平台,或者是两个相互独立的两个模块,二维模块和三维模块难以 进行很好的通讯,造成二三维一体化软件平台中的以下问题: 1、 二维视图与三维视图要么不能联动,要么在联动时只能平移、不能旋转; 2、 二维管线数据在发生改变时,三维管线数据不能随之发生变化; 随着国民经济的快速发展和社会信息化水平越来越高,集成二、三维软件平台的地理 信息系统应用软件将有着广泛的应用,因此有必要提出一种二三维一体化软件中二维模块 与三维模块视图联动及管线数据同步的方法。


【发明内容】

[0005] 本发明的目的是提供一种集成二、三维平台的管线数据同步及联动方法,令二维 模块与三维模块之间可有效通讯,实现二维模块与三维模块视图的平移联动和旋转联动, 以及管线数据在两模块间的同步。
[0006] 本发明所采用的技术方案是: 集成二、三维平台的管线数据同步及联动方法,其特征在于: 由以下步骤实现: 步骤一:构建一个集成二、三维平台的应用系统框架,在该应用系统框架中设置一个二 维模块和一个三维模块,并分屏对比显示; 在二维模块中实现视图刷新事件的捕捉,可将视图刷新前后视图的范围、比例尺、旋转 角度的变化消息发送给三维模块;并设置添加管点、移动管点、删除管点、添加管段、删除管 段、属性修改的功能模块,可将修改后的消息发送给三维模块; 在三维模块中实现三维视图移动、旋转、缩放事件的捕捉,可获取相机高度、旋转角度、 相机中心点坐标三个参数,计算出二维视图的中心点坐标、二维视图的显示比例尺,并将该 消息发送给应用系统框架;应用系统框架通过回调函数捕获该消息,在消息处理函数中设 置二维视图的中心点坐标、比例尺和旋转角度,并重新绘制二维视图; 步骤二:在二维模块和三维模块中分别捕获其视图绘制事件; 当二维视图刷新事件被捕获后,判断该视图是否进行了平移或旋转,当发生平移或旋 转时,则向三维模块中发送二维视图的比例尺、旋转角度、以及视图中心点坐标数据;三维 模块收到数据后,把其转换成为摄像机高度、旋转角度以及摄像机视域中心点,然后刷新三 维视图,从而完成二维向三维的视图联动; 当三维视图刷新事件被捕获后,判断摄像机是否进行了平移或旋转,当发生平移或旋 转时,则根据摄像机的高度、旋转角度、以及视图中心点换算成为二维视图的比例尺、旋转 角度和视图中心点,并向二维模块中发送这些数据,应用系统框架的回调函数捕获到数据 后,对二维视图进行设置和刷新,从而完成三维向二维的视图联动; 步骤三:当在二维模块中添加管点、移动管点、删除管点、添加管段、删除管段、编辑管 点属性、编辑管段属性后,向三维模块发送管点或管段更改后的数据,包括修改后管线要素 的图形及属性数据,当三维模块收到这些数据后,对三维视图中的相应数据进行更改,从而 完成管线数据的同步。
[0007] 本发明具有以下优点: 1、该方法很好的解决了二三维视图的平移、旋转、缩放的联动问题。
[0008] 2、通过该方法,实现了管线数据在二三维模块中包括添加管点、移动管点、删除管 点、增加管段、删除管段、管线属性编辑在内的图形与属性数据同步。
[0009] 3、鉴于管点与管段存在拓扑关系,移动管点时与之相连的管段亦随之移动,并在 二维与三维模块内实现同步。

【专利附图】

【附图说明】
[0010] 图1为本发明的原理框图。
[0011] 图中,1-集成二、三维平台的应用系统框架,2-二维模块,3-三维模块,4-二维模 块向三维模块发送视图联动消息和数据,5-管线数据同步时需要发送的消息,6-三维模块 向二维模块发送视图联动消息和数据。

【具体实施方式】
[0012] 下面结合【具体实施方式】对本发明进行详细的说明。
[0013] 本发明涉及的集成二、三维平台的管线数据同步及联动方法,能在一个统一的集 成二、三维平台的应用系统框架1内,通过分屏实现二维模块2与三维模块3的对比显示, 并通过二维模块向三维模块发送视图联动消息和数据4实现二维视图变化后三维视图随 之变化、通过管线数据同步时需要发送的消息5实现二维视图内管线数据更新后三维视图 同步更新、通过三维模块向二维模块发送视图联动消息和数据6实现三维视图变化后二维 视图随之变化。
[0014] 具体由以下步骤实现: 步骤一:构建一个集成二、三维平台的应用系统框架,在该应用系统框架中设置一个二 维模块和一个三维模块,并分屏对比显示。
[0015] 在二维模块中实现视图刷新事件的捕捉,可将视图刷新前后视图的范围、比例尺、 旋转角度的变化消息发送给三维模块;并设置添加管点、移动管点、删除管点、添加管段、删 除管段、属性修改的功能模块,可将修改后的消息发送给三维模块。
[0016] 在三维模块中实现三维视图移动、旋转、缩放事件的捕捉,可获取相机高度、旋转 角度、相机中心点坐标三个参数,计算出二维视图的中心点坐标、二维视图的显示比例尺, 并将该消息发送给应用系统框架;应用系统框架通过回调函数捕获该消息,在消息处理函 数中设置二维视图的中心点坐标、比例尺和旋转角度,并重新绘制二维视图。
[0017] 本发明基于ArcGIS、SuperMap、Maplnfo等成熟二维商业GIS软件或SharpMap 等二维开源GIS软件为平台的二维模块2,基于Skyline等成熟三维商业GIS软件或 WorldWind、0SG开源三维软件的三维模块3。
[0018] 步骤二:在二维模块和三维模块中分别捕获其视图绘制事件: 二维模块捕捉视图刷新事件,并根据刷新前后视图的范围、比例尺、旋转角度是否发生 了变化来判断是否需要向三维模块中发送消息。当二维视图刷新事件被捕获后,判断该视 图是否进行了平移或旋转,当发生平移或旋转时,则向三维模块中发送二维视图的比例尺、 旋转角度、以及视图中心点坐标数据;三维模块收到数据后,把其转换成为摄像机高度、旋 转角度以及摄像机视域中心点,然后刷新三维视图,从而完成二维向三维的视图联动; 当三维视图刷新事件被捕获后,判断摄像机是否进行了平移或旋转,当发生平移或旋 转时,则根据摄像机的高度、旋转角度、以及视图中心点换算成为二维视图的比例尺、旋转 角度和视图中心点,并向二维模块中发送这些数据,应用系统框架的回调函数捕获到数据 后,对二维视图进行设置和刷新,从而完成三维向二维的视图联动; 步骤三:当在二维模块中添加管点、移动管点、删除管点、添加管段、删除管段、编辑管 点属性、编辑管段属性后,向三维模块发送管点或管段更改后的数据,包括修改后管线要素 的图形及属性数据,当三维模块收到这些数据后,对三维视图中的相应数据进行更改,从而 完成管线数据的同步。
[0019] 实际使用过程中,本发明的具体实施过程如下: 首先,以VS2010为开发工具,以ArcGIS Engine为二维平台,以0SG为三维平台,搭建 一个集成二、三维软件双屏显示的应用系统框架; 其次,扩展0SG三维软件的功能,实现OnMessage函数--0SG实例用来接收外部发送 的数据,以及实现RenderCallback函数-0SG视口渲染时激发的回调函数; 第三,实例化ArcGIS Engine地图控件和0SG视口; 第四,在应用系统框架主窗体中,设置三个变量来存储二维视图(即ArcGIS Engine数 据视图)的中心点坐标、比例尺、旋转角度,以及实例化;编写ArcGIS Engine数据视图的 OnAfterScreenDraw事件处理函数,在该函数内判断二维视图的三个参数是否与预先存储 的三个变量是否一致,如果不一致,则调用0SG的OnMessage函数向0SG视口实例发送包含 中心点坐标、比例尺、旋转角度信息的消息数据,0SG视口实例接收到消息数据后,根据消息 数据计算出相机的高度、中心点坐标、旋转角度,并重绘0SG视口,二维视图在平移、旋转、 缩放后三维视图也随之变化; 第五,在应用系统框架中,编程实现添加管点、移动管点、删除管点、添加管段、删除管 段、属性修改的ArcGIS ITool和ArcGIS ICommand类,在类的实现代码中编写管线数据编 辑逻辑、以及通过调用0SG的OnMessage函数向0SG视口实例发送包含编辑后管线图形和 属性信息的消息数据,0SG视口实例接收到消息数据后,根据消息数据内容对相应管线作出 添加、删除、修改的操作,并重绘0SG视口实例,实现二、三维平台管线数据的同步更新; 第六,编写0SG视口移动、旋转、缩放事件的处理函数,获取相机高度、旋转角度、相 机中心点坐标三个参数,并计算出二维视图的中心点坐标、二维视图的显示比例尺,通过 RenderCallback回调函数将包含这些数据的消息发送给应用系统框架相应的处理函数,该 处理函数通过设置IMapControl的Extent属性、Rotation属性、以及MapScale属性,并重 新绘制二维视图,从而实现三维视图在移动、旋转、缩放后二维视图也随之变化。
[0020] 本发明的内容不限于实施例所列举,本领域普通技术人员通过阅读本发明说明书 而对本发明技术方案采取的任何等效的变换,均为本发明的权利要求所涵盖。
【权利要求】
1.集成二、三维平台的管线数据同步及联动方法,其特征在于: 由以下步骤实现: 步骤一:构建一个集成二、三维平台的应用系统框架,在该应用系统框架中设置一个二 维模块和一个三维模块,并分屏对比显示; 在二维模块中实现视图刷新事件的捕捉,可将视图刷新前后视图的范围、比例尺、旋转 角度的变化消息发送给三维模块;并设置添加管点、移动管点、删除管点、添加管段、删除管 段、属性修改的功能模块,可将修改后的消息发送给三维模块; 在三维模块中实现三维视图移动、旋转、缩放事件的捕捉,可获取相机高度、旋转角度、 相机中心点坐标三个参数,计算出二维视图的中心点坐标、二维视图的显示比例尺,并将该 消息发送给应用系统框架;应用系统框架通过回调函数捕获该消息,在消息处理函数中设 置二维视图的中心点坐标、比例尺和旋转角度,并重新绘制二维视图; 步骤二:在二维模块和三维模块中分别捕获其视图绘制事件; 当二维视图刷新事件被捕获后,判断该视图是否进行了平移或旋转,当发生平移或旋 转时,则向三维模块中发送二维视图的比例尺、旋转角度、以及视图中心点坐标数据;三维 模块收到数据后,把其转换成为摄像机高度、旋转角度以及摄像机视域中心点,然后刷新三 维视图,从而完成二维向三维的视图联动; 当三维视图刷新事件被捕获后,判断摄像机是否进行了平移或旋转,当发生平移或旋 转时,则根据摄像机的高度、旋转角度、以及视图中心点换算成为二维视图的比例尺、旋转 角度和视图中心点,并向二维模块中发送这些数据,应用系统框架的回调函数捕获到数据 后,对二维视图进行设置和刷新,从而完成三维向二维的视图联动; 步骤三:当在二维模块中添加管点、移动管点、删除管点、添加管段、删除管段、编辑管 点属性、编辑管段属性后,向三维模块发送管点或管段更改后的数据,包括修改后管线要素 的图形及属性数据,当三维模块收到这些数据后,对三维视图中的相应数据进行更改,从而 完成管线数据的同步。
【文档编号】G06F9/52GK104090827SQ201410295916
【公开日】2014年10月8日 申请日期:2014年6月27日 优先权日:2014年6月27日
【发明者】王晓东, 彭桂辉, 郑文青, 薛宇飞, 刘敏, 刘海君, 江彬, 杨阳, 张弓, 车登科 申请人:西安煤航信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1