您好,欢迎来到钮旅网。
搜索
您的当前位置:首页基于osgEarth的本地化三维场景构建和应用

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

来源:钮旅网
技术应用TECHNOLOGY APPLICATION

基于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影像数据的金字塔切片和调用、模型的制作和调用等技术。

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

图1 程序安装目录图

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

osgearth_viewer ../tianditu.earth

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

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

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

可以从网上下载已经编译好的osgEarth程序包,也可以自己下载osgEarth源码和所需要的插件库和

如下:

http://t0.tianditu.cn/img_w/wmts?service=wmts&request=GetTile&

version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={z}&TileRow={y}&

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

34 信息化测绘

TileCol={x}&style=default&format=tiles

spherical-mercator TRUE

data/world.tif

data/henan.tif

data/oil.ive

113.721133 34.7723194 1

data/dijishi.shp

true

false

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

标签为dem数据文件地址。

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

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

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

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

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

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

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

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

data/henan.tif

32

在dem.dat 执行如下命令:cd ./bin

osgearth_package ../dem.earth --tms --ext tif --out f:\ms\\

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

F:/tms/henan/tms.xml

2017/ 4 35

技术应用TECHNOLOGY APPLICATION

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

图2 地形图

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

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

data/world.tif

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

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

data/world.tif 256

在dom.dat 执行如下命令:cd ./bin

osgearth_package ../dom.earth --tms --ext png --out f:\\dms\\

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

36 信息化测绘

F:/dms/world/tms.xml

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

5 模型的加载的和显示

可以采用3Dmax制作3D模型。安装3Dmax以后,再下载安装osgexp插件,之后用3Dmax制作的三维模型就可以导出ive格式了。把制作的好的三维

模型拷贝到data文件夹下面,在tianditu.earth配置文件中加入如下代码,就可以实现模型的加载。标签下面分别为经度、维度、高度。 data/oil.ive

113.721133 34.7723194 1

网络发布模型方法跟前面介绍的相同,在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.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务