osgEarth是基于OSG的与GoogleEarth类似的跨平台地形SDK,笔者结合自己的经验,利用BIGEMAP来进行地图影像资源的下载,给大家介绍一种适用于osgEarth
内容来自www.wkfxw.com
的TMS 地图瓦片数据集的制作方法。
OpenSceneGraph是一个开源的三维引擎,被广泛的应用在视化仿真、游戏、虚拟现实、科学计算、三维重建、地理信息、太空探索、石油矿产等领域。OSG采用标准C++和OpenGL编写而成,可运行在所有的Windows平台、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD 操作系统。OSG在各个行业均有着丰富的扩展,能够与使用OpenGL书写的引擎无缝的结合,使用国际上最先进的图形渲染技术,让每个用户都能站在巨人的肩上。而osgEarth是正是基于OSG的与GoogleEarth类似的跨平台地形SDK。osgEarth的开源特性使得相当多的人对其进行了研究,而对于广大工程人员来说,一个漂亮的地图是其开展应用的第一步,为此,笔者结合自己的经验,给大家介绍一种适用于osgEarth
的地图瓦片数据集的制作过程。
本文充分利用了BIGEMAP软件的便利,制作了TMS地球影像数据集,并对数据集进行了配置,最通过读取earth文件的方式,在osgEarth中对数据集进行了演示,为广大OSG爱好者提供了制作地球瓦片的有效方法。
osgEarth
GoogleEarth
本文笔者利用BIGEMAP(免费版)软件来进行地图影像资源的下载,以谷歌中国地图(图1)为例,选中菜单项中的“矩形框”,在地图上任意选取一个矩形区域(图2),后选择界面右上方的“编辑”,修改矩形框的范围为:-180.0-180.0 ,-90.0-90.0(图3),这样就框中了全球区域(图4)。双击矩形区域内部,就弹出地图下载对话框(图5),将“存储选项”选择“瓦片:TMS ”,“PNG”图片格式,瓦片级别根据需要选择,由于硬盘空间原因,本文只选到了8级,单击“确定”后就开始了瓦片的下载,详细情况可以在“下载列表”里查看。下载结束后生成的瓦片在“TMS”文件夹下,里面有0-8级PNG格式的瓦片(图6-7)。至此,基于BIGEMAP谷歌中国的地图瓦片就收集完毕了。
2、 任意选择一个区域示例
3、 更改矩形框的范围
4、 选中全球范围
5、下载设置对话框
6、0-8级瓦片文件夹
7、PNG格式瓦片
TMS数据集的配置及其在OSGESRTH上的演示
osgEarth可以使用TMS服务来配置瓦片数据集,这需要一个配置文件(本例中为tilemapresource.xml文件),具体配置内容如下:
<?xml version="1.0" encoding="utf-8"?>
<TileMap version="1.0.0" tilemapservice=";>
<Title>world2.tif</Title>
<Abstract></Abstract>
<SRS>EPSG:900913</SRS>
<BoundingBox miny="-85.05112878000000" minx="-180.00000000000000" maxy="85.05112878000000" maxx="180.00000000000000"/>
<Origin y="-85.05112878000000" x="-180.00000000000000"/>
<TileFormat width="256" height="256" mime-type="image/png" extension="png"/>
<TileSets profile="mercator">
<TileSet href="0" units-per-pixel="156543.03390000001000" order="0"/>
<TileSet href="1" units-per-pixel="78271.51695000000500" order="1"/>
<TileSet href="2" units-per-pixel="39135.75847500000200" order="2"/>
<TileSet href="3" units-per-pixel="19567.87923750000100" order="3"/>
<TileSet href="4" units-per-pixel="9783.939618750000500" order="4"/>
<TileSet href="5" units-per-pixel="4891.969809375000250" order="5"/>
<TileSet href="6" units-per-pixel="2445.984904687500125" order="6"/>
<TileSet href="7" units-per-pixel="1222.992452343750063" order="7"/>
<TileSet href="8" units-per-pixel="611.496226171875031" order="8"/>
</TileSets>
</TileMap>
配置完成后,最终的“TMS”文件夹如图8所示。
8 TMS文件夹最终配置
至此TMS数据集配置完成,下面来实现在osgEarth中的显示。这里使用earth文件来显示瓦片影像数据,本文为: C:\osg\osgearth\osgearth\tests\tmsdriver4.earth, tmsdriver4.earth文件内容如下:
<map name="shiyan-tms" type="geocentric" version="2">
<image driver="tms" name="world" >
<url>C:/Users/cf/Desktop/12/world3/TMS/tilemapresource.xml</url>
</image>
</map>
在CMD中输入命令(图9):
“osgearth_viewerd C:\osg\osgearth\osgearth\tests\tmsdriver4.earth”,谷歌风格的地球影像就出来了(如图10-11)。