基于osgEarth的本地化三维场景构建和应用

2017-05-15 01:15刘洪双
资源导刊(信息化测绘) 2017年4期
关键词:配置文件调用插件

刘洪双

(河南省地图院,河南 郑州 450008)

基于osgEarth的本地化三维场景构建和应用

刘洪双

(河南省地图院,河南 郑州 450008)

基于osgEarth开源库,使用其自带的dem高程数据和dom正射影像数据切片工具,对数据进行金字塔切片,通过配置文件实现矢量数据、瓦片数据、三维模型的加载和显示,快速构建简单的三维场景。

osgEarth;天地图;dem;dom;三维模型

1 引言

openSceneGraph是一个开源的三维引擎,被广泛地应用在可视化仿真、游戏、虚拟现实、科学计算、三维重建、地理信息、太空探索、石油矿产等领域。osg采用标准C++和OpenGL编写而成,可运行在所有的Windows平台、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD 操作系统。

osgEarth是基于三维引擎osg开发的三维数字地球引擎库,在osg基础上实现了瓦片调度插件,可选的四杈树调度插件,更多的地理数据加载插件(包括GDAL、ogr、WMS、TMS、VPB、filesystem等),再结合一套地理投影转换插件,这样就能够实现高效处理加载调度地理数据在三维地球上的显示,实现三维虚拟地球。

本文主要介绍利用osgEarth对本地三维数据的调用,包括对“天地图”发布的WMTS服务的调用、本地矢量数据的调用、dem高程数据的金字塔切片和调用、dom影像数据的金字塔切片和调用、模型的制作和调用等技术。

2 “天地图”瓦片服务的调用

“天地图”提供了丰富的矢量数据、栅格数据服务接口,提供了覆盖全球的地理信息数据。其中中国的数据覆盖了从宏观的中国全境到微观的乡镇、村庄。因此,利用osgEarth调用天地图提供的数据,并跟本地数据结合,实现快速建模,快速更新,快速发布,将有利于地方虚拟城市和三维地形的建设和发展,提供新型的地理信息服务模式。

可以从网上下载已经编译好的osgEarth程序包,也可以自己下载osgEarth源码和所需要的插件库和osgEarth使用的开源库,利用CMake对源码进行编译,生成dll文件和可执行exe文件,在此不作详细论述,下面着重讲述调用方法。在下载的程序包目录下新建六文件,其中三个批处理dat文件,三个earth配置文件。见图1。

图1 程序安装目录图

tianditu.bat为批处理文件,内容如下:

tianditu.earth 为osgEarth的配置文件。内容如下:

标签下面的url地址为天地图Web墨卡托投影的卫星影像WMTS服务地址,另外一个是本地卫星影像tif文件地址[1]。

标签为dem数据文件地址。

标签下是球形墨卡托投影。

一个模型的数据源(例如,功能、数据、外部模型)。

读取特征数据的驱动插件名称。

配置完成后,双击 tianditu.bat,启动自带的osgViewer程序并读取tianditu.earth配置文件。

3 dem数据的金字塔切片和调用

osgEarth通过配置文件tianditu.earth可以调用本地的dem数据。例如:把dem文件henan.tif拷贝到data文件夹下面,在配置文件中加入如下代码,就可以实现对本地dem数据的加载和显示。

由于dem数据文件较大,要加快浏览速度,或者直接在iis服务器中进行发布是不合适的(例如:http://ip/data/henan.tif),可以采用金字塔切片的方法对dem数据进行矢量瓦片化处理,即使用osgEarth自带的osgearth_package工具,对dem数据进行切片[2]。

在图1中在dem.earth 文件添加如下代码:

在dem.dat 执行如下命令:

就会在 f: ms 文件夹下面生成一个henan文件夹,里面存储dem金字塔切片文件。修改tianditu. earth文件中的配置信息:

也可以在iis中添加一个虚拟目录,映像物理路径F:/tms/henan/,就可采用http://ip/ henan/tms.xml的方式进行网络发布。显示效果如图2。

图2 地形图

4 卫星影像的金字塔切片和调用

osgEarth也可以通过tianditu.earth配置文件调用本地的卫星影像数据。例如:把world.tif拷贝到data文件夹下面,在配置文件中加入如下代码,就可以加载显示本地的影像数据。

可以使用osgEarth自带的工具,对dom影像数据进行金字塔切片处理。

在图1dom.earth文件中添加如下代码:

在dom.dat 执行如下命令:

就会在 f:dms 文件夹下面生成一个world文件夹,里面存储dom影像金字塔切片文件。修改tianditu.earth文件中的配置信息:

也可以在iis中添加一个虚拟目录,映像物理路径F:/dms/world/,就可以采用http://ip/ world/tms.xml的方式,进行网络发布。

5 模型的加载的和显示

可以采用3Dmax制作3D模型。安装3Dmax以后,再下载安装osgexp插件,之后用3Dmax制作的三维模型就可以导出ive格式了。把制作的好的三维模型拷贝到data文件夹下面,在tianditu.earth配置文件中加入如下代码,就可以实现模型的加载。标签下面分别为经度、维度、高度。

网络发布模型方法跟前面介绍的相同,在iis下发布模型文件,例如:

http://ip/ data/oil.ive,就可以直接在线调用模型。

6 总结

以上着重介绍了osgEarth实现本地化数据加载的方法,以及对dem和dom数据进行金字塔切片并进行网络发布的方法, 其他的具体配置和使用,可以参照图1中tests文件夹下的配置例子。通过这些学习,可以很快的利用osgEarth实现本地化三维场景的发布和构建。

[1]吴晓雪, 任鸿翔, 张显库,等. 基于osgEarth三维数字地球建设的研究[J]. 大众科技, 2015(1):1-3.

[2]吴小东, 许捍卫. 基于OSGEarth的城市三维场景构建[J]. 地理空间信息, 2013, 11(2):107-110.

刘洪双 (1977― ),男,汉族,从事地图测绘程序研发工作。E-mail:37735159@qq.com

猜你喜欢
配置文件调用插件
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
自编插件完善App Inventor与乐高机器人通信
互不干涉混用Chromium Edge
核电项目物项调用管理的应用研究
基于OSGi的军用指挥软件插件机制研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
基于jQUerY的自定义插件开发
利用RFC技术实现SAP系统接口通信