2.3 OSGEARTH
OSGEARTH是基于标准的C++和OSG开发的,一种加载实时地形模型和渲染的工具,具有多种源数据的支持和数据管理的能力[10]。OSGEARTH采用的是基于XML语言的EARTH文件来进行地理空间数据的标定,用这种文件标记地理空间的数据有以下的特点:
1) 可以用离线或在线两种方式进行地理空间数据的读取和显示,并生成实时的地形数据。
2) 可以添加区界线、省界线、国界线以及其他的多种属性信息。
3) 可以在首次运行的时候生成缓存数据,大大地减少系统之后运行的等待加载时间。
4) 可以将整个文件作为一个节点加入到OSG中,并有一些交互的工具,比如earthManipulator等,从而对编程提供了较大的灵活性。
OSGEARTH只是利用任何地形数据都会包括的投影坐标系及经纬度信息进行定位。这样的优点在于无论何种数据源的数据,只要能最后确定一定的投影参考系,便能保证被放置在正确的位置,数据之间保持正确的拓扑关系和逻辑关系。而相关的投影系转换,标准,表达方式,国际上规定也十分明确。一个统一的标准,使OSGEARTH能接纳更多源的数据。
OSGEARTH采用“图层”的概念来进行各种数据的管理,其中包括高程层、模型矢量层、影像层等的管理,对于不同的图层有不同的数据类型,这样可以使不同分辨率的高程、矢量、影像数据等的叠加。数据源的顺序决定渲染的顺序,在EARTH文件中,处于最前面的,在渲染时处于最底层渲染,所以,如果有高、低精度不同的高程数据,在创建EARTH文件时,要将粗精度的数据放在上方xml节点,高精度的放在其下的节点。
一个EARTH文件的编写主要包括以下几个属性:
<map>标签:是EARTH文件的主标签。name属性主要表示高程的名称;type属性表示程序中使用的坐标系统,对于此程序中使用Geocentric,即为地心坐标系;Version属性主要表示OSGEARTH的使用版本。
<elevation>标签:是EARTH文件中用来表示高程数据。name属性表示高程数据的名称;driver属性用来表示数据驱动的方式,OSGEARTH有很多自带的驱动器,比如此程序中用的gdal,重要用来驱动DEM的数据;url属性主要是描述数据的来源。
<image>标签:是EARTH文件中用来表示纹理数据。name属性表示纹理名称;driver属性用来表示数据驱动的方式,agglite驱动器是将矢量数据栅格化为位图,将其转化为地形的瓦片;;url属性主要是描述数据的来源。
<cache>标签:是用来表示缓存。type属性用来表示缓存的类型;path属性用来表示缓存的指定路径。 OSG电网500KV故障定位以及可视化(3):http://www.751com.cn/zidonghua/lunwen_11338.html