离线三维数字城市系统的研究与应用

2019-06-15 03:31王星捷卫守林
现代电子技术 2019年12期
关键词:瓦片空间数据离线

王星捷 卫守林

摘  要: 在没有互联网的条件下,三维数字城市系统无法便捷地在本地运行,无法满足用户需要实时显示和交互的要求。文中对OSGEarth三维地球引擎技术、离线三维数据库技术和地理数据组织管理进行研究,采用LOD与分页、四叉树动态调度等技术对离线数据进行无缝集成,采用Qt平台,构建离线三维数字城市系统,实现在离线状态下大规模三维场景实时漫游、空间数据交互和系统的移植。通过实验证明了三维数据显示的完整性和空间信息访问的高效性,较好地解决了三维数字城市离线状态下,数据的组织、集成、优化和高效访问等问题,为离线三维GIS方面的研究提供了一种新的技术。

关键词: 三维数字城市系统; 地球引擎技术; 四叉树动态调度; Qt平台; 实时漫游; 三维GIS

中图分类号: TN919?34; TP391.9               文献标识码: A                    文章编号: 1004?373X(2019)12?0112?05

Abstract: The 3D digital city system cannot run conveniently in the local under the condition of no internet, which cannot satisfy users′ requirements of real?time display and interaction. The OSGEarth 3D earth engine technology, offline 3D database technology, and geographic data organization and management are researched in this paper. The seamless integration is conducted for offline data by using LOD and paging, quad?tree dynamic scheduling and other technologies. The offline 3D digital city system is established by using the Qt platform, so as to realize real?time roaming of the large?scale 3D scene in offline state, spatial data interaction and system transplantation. The completeness of the 3D data display and high?efficiency of spatial information access are demonstrated by the experiment, which can solve the problems of data organization, integration, optimization, and high?efficient access for the 3D digital city system in offline state, and provide a new technology for the research of offline 3D GIS.

Keywords: 3D digital city system; earth engine technology; quad?tree dynamic scheduling; Qt platform; real?time roaming; 3D GIS

0  引  言

随着计算机硬件跨越式发展,硬件条件不断升级和完善,三维空间数据显示的硬件瓶颈已经得到解决。三维数字城市的建设正接踵而来,三维数字城市技术实现过程中,也出现了不少技术上的问题,比如:网络的传输能力、三维数据服务器的响应能力、三维数据实时显示等问题,这些问题都影响三维数字城市在客户端的显示和数据的交互[1]。基于上述问题,本文研究了离线技术方法和离线三维数据管理技术,实现离线三维数字城市[2]。本文利用OSGEarth三维地球引擎[3]对离线的三维地理数据进行有效的组织管理,采用LOD与分页、动态调度等技术高速融合展示空间数据。最后采用了移植性好、跨平台的Qt技术,实现图形界面优美的离线三维数字城市[4]。

1  OSGEarth三维技术

OSGEarth是一款强大的规模化三维地球渲染工具,它具有跨平台、开源、高性能处理地理信息的能力。只需创建一个基于XML格式earth文件,可表示出影像、高程和矢量模型等信息,并且实现高效的渲染效果。earth文件能快速指定创建地图的类型(地理坐标和投影坐标)、地理数据和模型数据资源。

OSGEarth平台三维数据制作方便简洁,通过三维地形工具可以在数据采集过程中即时生成地形模型,可以处理各种类型的地形模型。同时可以叠加多种影像、高程和矢量数据。可通过地图切片缓存的方法进行加速[5],通过多影像半透明叠加等属性来实现三维渲染[6]。

OSGEarth空间数据库管理层次性强,层与层之间的关联度强,是实现离线数据管理的关键技术,在设计过程中要详细考虑各个属性对应各层之间的对象。在制作map数据时,需要考虑到空间参考坐标和profile属性。profile属性是每个map对象、layer对象和Tilesource对象中不可或缺的属性,决定它们所属空间位置,同时记录着对象空间参考系的属性(SRS)数据的经纬度数据。在不同空间参考系中,经纬度代表不同的位置。因此,在OSGEarth中的每个数据对象都会包含空间参考系属性(SRS)。

2  离线数据设计与实现

离线地理空间数据[7]是将空间数据储存在本地或服务器,通过网络服务下载或者直接读取磁盘数据来实现脱离互联网环境。离线地理空间数据能够满足用户数据保密性、大数据高效读取、脱离互联网离线加载以及能跨平台移植等个性化需求。储存在本地的地理空间数据包括:构建全球的地图数据、构建研究区域场景的高精度影像数据、高程数据及具有详细属性的局部矢量数据等。具体的实现流畅如图1所示。

2.1  创建earth文件

earth文件基于XML的文件格式。在earth文件中快速指定创建地图的类型(地理坐标和投影坐标)、地理数据和模型数据资源。

具体包括场景高清影像、场景高程、场景矢量数据。采集研究区域的影像图,进行空间矢量化,在建筑物图层中设置属性字段Building_HT表示建筑的高度,通过XML进行描述,将建筑矢量文件拉伸为具有高度的建筑模型。XML描述如下:

图1  离线数据制作流程

2.2  创建map文件

创建earth文件完成后,將earth文件中的具体内容转换成conf对象,conf对象是在构造map时必须的,它就是将earth的标签语言转换为相应的对象,每个对象又包含相应的属性信息。通过遍历包含这些属性的conf对象,来构造一个包含地图类型、地理数据和模型数据资源的map文件。map文件并没有实际读取数据。只是逻辑上包含各个图层信息、数据源信息以及所需驱动插件信息。具体转换内容如下:

2.3  构建mapNode

mapNode将通过获取的map,调用相应的驱动器插件,来构建地形节点。

首先,通过具有核心渲染功能的osgViewer进行渲染前的预处理,完成地形节点框架构建和加载底图影像属性;其次,osgviewer渲染,相机开始添加场景时,根据视点范围及距离,通过PagedLOD分页机制和TileKey管理构建四叉树组织,动态调度选择加载区域瓦片节点。构建mapNode和mapNode的逻辑节点树。

将地图节点加载至场景树时,就是完成了一个group节点的创建,再次将mapNode包含进去,通过osgViewer渲染,OSGEarth会利用PagedLOD动态地加载卸载瓦片节点,重复上面构造mapNode的步骤来构造新的节点,从而构建整个离线数据。

3  四叉树组织数据与分页LOD

OSGEarth是实时建立分层瓦片集,并实时进行渲染。具体实现过程是通过记录投影信息和范围信息属性,结合分页LOD技术[9]来创建瓦片数据源TileSource,再通过TileKey进行四叉树管理。四叉树瓦片分层如图2所示。

图2  四叉树瓦片分层

OSGEarth[10]是通过经纬度来表示世界范围,如果将OSGEarth地球表面剖开并铺展成为平面,最左边的坐标是西经180°,最右边的坐标是为东经180°,最上边的坐标为北纬90°,最下边的坐标为南纬90°,也就是-180°,180°,90°,-90°。

实时加载过程中,OSGEarth会根据map或数据的profile属性实时进行分层瓦片化。图3列出的是profile中关于瓦片分层的一些属性,其中的数值是一个全球影像数据的属性值。OSGEarth利用这些属性数据将地理数据分层瓦片化,并且确定地理数据的位置。

其中:numTilesWideAtLod0表示最高一层的宽度,即行数;numTilesHighAtLod0表示最高一层的高度,即列数,默认宽度高度为2和1。这个默认值正好将第一层的全球数据分成东西半球。然后OSGEarth将继续向下分层瓦片,随着层层的深入,地形块就变得越来越小。只有视点到块的距离小于当前地形块大小,OSGEarth才会继续向下分层瓦片。

图3  全球瓦片分层属性  

OSGEarth每向下分层一次瓦片,每一张瓦片又会被等分成4张瓦片。每一个瓦片TileSource都赋予了一个TileKey属性,然后通过TileKey属性方便进行管理,当瓦片从上一层分割到下一层时,TileKey就会由一个变成4个子TileKey。由此类推,体现了四叉树的组织思想。 TileKey是从瓦片的左上角开始编码,表示方法为TileKey(lod,x,y),其中lod表示瓦片的分层级别,x表示行数,y表示列数。如图2中第三层瓦片所示,其中阴影部分的瓦片是第3层,第5列,第1行,用key表示为TileKey(2,5,1)。

每放大一级,瓦片就会越多,这样在相同的区域内每一块瓦片的范围就会逐渐变小,来展示更多的信息。如图2中第三层瓦片里的阴影区域瓦片,它的坐标范围应该是东经45°,东经90°,赤道,北纬45°的瓦片块。这些数字将被记录到Extent属性中,此时对应的West,East,South和North分别对应45°,90°,0°,45°。

当数据源在某个范围内有数据时,该区域的瓦片便会加载,否则不会加载。有效地控制了加载块数。根据Extent,OSGEarth将会把对应的数据放到该范围位置。

4  系统实验与分析

系统采用Qt平台开发,具有独特的优势:跨平台,系统可以任意移植,不受平台限制;封装机制,使得模块化调用非常的便捷,可重用性非常高;采用的是信号和槽的机制简化了元件之间相互关联性。

系统关键技术是实现场景控制和创建内容区域。其中场景控制类主要作用是实现加载本地earth文件的功能、获取earth文件节点earthNode、获取地图节点mapNode、获取地图map、获取根节点下的节点myroot、添加天空盒子和创建相机等。而创建内容区域类实现对三维数字城市的各种操作,主要包括:图层显示、添加经纬线、添加全球国界、加载本地瓦片数据、对驱动修改等。对本系统的实验数据以2 000亩的城市区域为研究对象,测试平台为Windows和台电平板Android系统[13]。对本文实现的系统进行了全面的测试,利用Qt平台实现的系统不仅能在Windows下完好的运行,又能方便地移植到Android平台下,对离线数据在两个平台进行了测试,Qt实现的系统,界面实现简单且友好,数据交互效果好。在移植到Android系统中实现的效果如图4所示。

图4  系统全景显示

从开发工作量和效率方面对比,本系统采用Qt开发,解决了系统跨平台移植,实现了一次编译,多个系统运行的效果,提高了开发系统的效率[14]。Qt的图形库优势相当大,图形界面友好,实现简单,实现三维渲染有独特的优势。

采用.net平台需要加载第三方控件,三维渲染的难度也较大, Android移动开发最大的缺点就是界面,在界面需要花销一定的开发工作量,在三维渲染上的实现难度也较大。

离线数据的对比,采用OSGEarth实现三维离线数据,通过LOD与分页、动态调度等技术,可以方便简单地创建三维离线空间数据,而且可以加载多种空间数据。其最大的优点就是建模时间短、效率高、空间小,对三维空间数据的组织管理效率高。

采用ArcGIS实现三维离线,首先在PC端先根据shp文件进行三维建模,然后实现二、三维联动;在移动端将shp文件转成离线文件tpk,将三维模型导入到对应的移动端,实现二、三维联动,实现过程较复杂,访问过程中效率问题只能通过编写代码进行优化。其具体的数据对比如表1所示。

5  结  语

本文实现的离线三维数字城市系统,其优势如下:利用OSGEarth三维地球引擎来对大量的离线地理空间数据和三维数据进行组织和管理,提高空间索引的效率;Qt开发平台,充分利用其界面图形库、三维渲染库和跨平台的优势;离线数据架构灵活,即可以方便移植到移动端,也可以放在服务器端,供客户下载。本文实现的离线三维数字城市系统,通过实验证明,三维离线数据组织和管理高效,数据交互性好,系统和离线数据的移植性强,为离线三维数字城市系统的开发提供了一种新的技术模式。

表1  实验结果数据对比

参考文献

[1] 温馨,罗侃,陈荣国.基于Shark/Spark的分布式空间数据分析框架[J].地球信息科学学报,2015,17(4):401?407.

WEN Xin, LUO Kan, CHEN Rongguo. A framework of distributed spatial data analysis based on Shark/Spark [J]. Journal of geo?information science, 2015, 17(4): 401?407.

[2] 应申,靳凤攒,李霖,等.基于ArcGIS Engine的矢量数据分层分块技术研究[J].测绘地理信息,2014,39(6):50?53.

YING Shen, JIN Fengzan, LI Lin, et al. Hierarchical block of vector data based on ArcGIS engine [J]. Journal of geomatics, 2014, 39(6): 50?53.

[3] 罗安平,魏斌,杨春成,等.Android平台的多尺度地理信息三维显示技术[J].测绘科学技术学报,2014,31(1):107?110.

LUO Anping, WEI Bin, YANG Chuncheng, et al. Multi?scale three?dimensional display of geographic information based on Android [J]. Journal of geomatics science and technology, 2014, 31(1): 107?110.

[4] 郭海青.数字城市地理空间框架建设项目三维城市模型建设技术研究[J].测绘通报,2013(4):86?87.

GUO Haiqing. Research on 3D urban modeling method of the digital city geospatial framework construction [J]. Bulletin of surveying and mapping, 2013(4): 86?87.

[5] 李锋,明镜,王昌翰.移动终端离线电子地图应用框架研究[J].测绘科学,2013,38(6):129?130.

LI Feng, MING Jing, WANG Changhan. Application framework of offline electronic map on mobile device [J]. Science of surveying and mapping, 2013, 38(6): 129?130.

[6] 胡章杰,张艺.BIM在三维数字城市中的集成与应用研究[J].北京测绘,2015(6):21?25.

HU Zhangjie, ZHANG Yi. Research on the integration and application of BIM in 3D digital city [J]. Beijing surveying and mapping, 2015(6): 21?25.

[7] 吴良波,金连甫.离线应用本地数据存储设计与实现[J].计算机工程与设计,2010,31(6):1236?1239.

WU Liangbo, JIN Lianfu. Design and implementation of local data storage for offline application [J]. Computer engineering and design, 2010, 31(6): 1236?1239.

[8] 许捍卫,范小虎,任家勇,等.基于SketchUp和ArcGIS的城市三维可视化研究[J].测绘通报,2010(3):52?54.

XU Hanwei, FAN Xiaohu, REN Jiayong, et al. Research on 3D visualization of digital city based on SketchUp and ArcGIS [J]. Bulletin of surveying and mapping, 2010(3): 52?54.

[9] 周圣川,胡振彪,马纯永,等.海滨城市三维场景的混合图元渲染方法[J].中国海洋大学学报(自然科学版),2016,46(1):138?144.

ZHOU Shengchuan, HU Zhenbiao, MA Chunyong, et al. A hybrid rendering approach for 3D seaside urban scenes visualization [J]. Periodical of Ocean University of China, 2016, 46(1): 138?144.

[10] 于艳超,许捍卫,吴小东.基于OSGEarth的城市三维地物模型组织与调度研究[J].测绘与空间地理信息,2014,37(11):63?67.

YU Yanchao, XU Hanwei, WU Xiaodong. Research of the organization and scheduling of feature model of urban three?dimensional based OSGEarth [J]. Geomatics & spatial information technology, 2014, 37(11): 63?67.

[11] 赵庆展,靳光才,周文杰,等.基于移动GIS的棉田病虫害信息采集系统[J].农业工程学报,2015,31(4):183?190.

ZHAO Qingzhan, JIN Guangcai, ZHOU Wenjie, et al. Information collection system for diseases and pests in cotton field based on mobile GIS [J]. Transactions of the Chinese Society of Agricultural Engineering, 2015, 31(4): 183?190.

[12] LIANG J, GONG J, LI W, et al. Visualizing 3D atmospheric data with spherical volume texture on virtual globes [J]. Computers & geosciences, 2014, 68: 81?91.

[13] PEREZ D, MAZA I, CABALLERO F, et al. A ground control station for a multi?UAV surveillance system [J]. Journal of intelligent & robotic systems, 2013, 69(1): 119?130.

[14] REN Y, LI G, ZHOU W, et al. A survey of recommendation techniques based on offline data processing [J]. Concurrency and computation: practice and experience, 2015, 27(15): 3915?3942.

猜你喜欢
瓦片空间数据离线
异步电机离线参数辨识方法
呼吸阀离线检验工艺与评定探讨
浅谈ATC离线基础数据的准备
一种基于主题时空价值的服务器端瓦片缓存算法
惯性
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素
元数据驱动的多中心空间数据同步方法研究
基于NoSQL数据库的瓦片地图服务
基于文件系统的分布式海量空间数据高效存储与组织研究
客户端空间数据缓存策略