劉洪雙
(河南省地圖院,河南 鄭州 450008)
基于osgEarth的本地化三維場景構(gòu)建和應(yīng)用
劉洪雙
(河南省地圖院,河南 鄭州 450008)
基于osgEarth開源庫,使用其自帶的dem高程數(shù)據(jù)和dom正射影像數(shù)據(jù)切片工具,對數(shù)據(jù)進(jìn)行金字塔切片,通過配置文件實(shí)現(xiàn)矢量數(shù)據(jù)、瓦片數(shù)據(jù)、三維模型的加載和顯示,快速構(gòu)建簡單的三維場景。
osgEarth;天地圖;dem;dom;三維模型
openSceneGraph是一個開源的三維引擎,被廣泛地應(yīng)用在可視化仿真、游戲、虛擬現(xiàn)實(shí)、科學(xué)計算、三維重建、地理信息、太空探索、石油礦產(chǎn)等領(lǐng)域。osg采用標(biāo)準(zhǔn)C++和OpenGL編寫而成,可運(yùn)行在所有的Windows平臺、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD 操作系統(tǒng)。
osgEarth是基于三維引擎osg開發(fā)的三維數(shù)字地球引擎庫,在osg基礎(chǔ)上實(shí)現(xiàn)了瓦片調(diào)度插件,可選的四杈樹調(diào)度插件,更多的地理數(shù)據(jù)加載插件(包括GDAL、ogr、WMS、TMS、VPB、filesystem等),再結(jié)合一套地理投影轉(zhuǎn)換插件,這樣就能夠?qū)崿F(xiàn)高效處理加載調(diào)度地理數(shù)據(jù)在三維地球上的顯示,實(shí)現(xiàn)三維虛擬地球。
本文主要介紹利用osgEarth對本地三維數(shù)據(jù)的調(diào)用,包括對“天地圖”發(fā)布的WMTS服務(wù)的調(diào)用、本地矢量數(shù)據(jù)的調(diào)用、dem高程數(shù)據(jù)的金字塔切片和調(diào)用、dom影像數(shù)據(jù)的金字塔切片和調(diào)用、模型的制作和調(diào)用等技術(shù)。
“天地圖”提供了豐富的矢量數(shù)據(jù)、柵格數(shù)據(jù)服務(wù)接口,提供了覆蓋全球的地理信息數(shù)據(jù)。其中中國的數(shù)據(jù)覆蓋了從宏觀的中國全境到微觀的鄉(xiāng)鎮(zhèn)、村莊。因此,利用osgEarth調(diào)用天地圖提供的數(shù)據(jù),并跟本地數(shù)據(jù)結(jié)合,實(shí)現(xiàn)快速建模,快速更新,快速發(fā)布,將有利于地方虛擬城市和三維地形的建設(shè)和發(fā)展,提供新型的地理信息服務(wù)模式。
可以從網(wǎng)上下載已經(jīng)編譯好的osgEarth程序包,也可以自己下載osgEarth源碼和所需要的插件庫和osgEarth使用的開源庫,利用CMake對源碼進(jìn)行編譯,生成dll文件和可執(zhí)行exe文件,在此不作詳細(xì)論述,下面著重講述調(diào)用方法。在下載的程序包目錄下新建六文件,其中三個批處理dat文件,三個earth配置文件。見圖1。
圖1 程序安裝目錄圖
tianditu.bat為批處理文件,內(nèi)容如下:
tianditu.earth 為osgEarth的配置文件。內(nèi)容如下:
配置完成后,雙擊 tianditu.bat,啟動自帶的osgViewer程序并讀取tianditu.earth配置文件。
osgEarth通過配置文件tianditu.earth可以調(diào)用本地的dem數(shù)據(jù)。例如:把dem文件henan.tif拷貝到data文件夾下面,在配置文件中加入如下代碼,就可以實(shí)現(xiàn)對本地dem數(shù)據(jù)的加載和顯示。
由于dem數(shù)據(jù)文件較大,要加快瀏覽速度,或者直接在iis服務(wù)器中進(jìn)行發(fā)布是不合適的(例如:http://ip/data/henan.tif),可以采用金字塔切片的方法對dem數(shù)據(jù)進(jìn)行矢量瓦片化處理,即使用osgEarth自帶的osgearth_package工具,對dem數(shù)據(jù)進(jìn)行切片[2]。
在圖1中在dem.earth 文件添加如下代碼:
在dem.dat 執(zhí)行如下命令:
就會在 f: ms 文件夾下面生成一個henan文件夾,里面存儲dem金字塔切片文件。修改tianditu. earth文件中的配置信息:
也可以在iis中添加一個虛擬目錄
圖2 地形圖
osgEarth也可以通過tianditu.earth配置文件調(diào)用本地的衛(wèi)星影像數(shù)據(jù)。例如:把world.tif拷貝到data文件夾下面,在配置文件中加入如下代碼,就可以加載顯示本地的影像數(shù)據(jù)。
可以使用osgEarth自帶的工具,對dom影像數(shù)據(jù)進(jìn)行金字塔切片處理。
在圖1dom.earth文件中添加如下代碼:
在dom.dat 執(zhí)行如下命令:
就會在 f:dms 文件夾下面生成一個world文件夾,里面存儲dom影像金字塔切片文件。修改tianditu.earth文件中的配置信息:
也可以在iis中添加一個虛擬目錄
可以采用3Dmax制作3D模型。安裝3Dmax以后,再下載安裝osgexp插件,之后用3Dmax制作的三維模型就可以導(dǎo)出ive格式了。把制作的好的三維模型拷貝到data文件夾下面,在tianditu.earth配置文件中加入如下代碼,就可以實(shí)現(xiàn)模型的加載。
網(wǎng)絡(luò)發(fā)布模型方法跟前面介紹的相同,在iis下發(fā)布模型文件,例如:
http://ip/ data/oil.ive,就可以直接在線調(diào)用模型。
以上著重介紹了osgEarth實(shí)現(xiàn)本地化數(shù)據(jù)加載的方法,以及對dem和dom數(shù)據(jù)進(jìn)行金字塔切片并進(jìn)行網(wǎng)絡(luò)發(fā)布的方法, 其他的具體配置和使用,可以參照圖1中tests文件夾下的配置例子。通過這些學(xué)習(xí),可以很快的利用osgEarth實(shí)現(xiàn)本地化三維場景的發(fā)布和構(gòu)建。
[1]吳曉雪, 任鴻翔, 張顯庫,等. 基于osgEarth三維數(shù)字地球建設(shè)的研究[J]. 大眾科技, 2015(1):1-3.
[2]吳小東, 許捍衛(wèi). 基于OSGEarth的城市三維場景構(gòu)建[J]. 地理空間信息, 2013, 11(2):107-110.
劉洪雙 (1977― ),男,漢族,從事地圖測繪程序研發(fā)工作。E-mail:37735159@qq.com