osgEarth文档翻译1

osgEarth适合我么?

如果你需要完成:

  • 简单快速的获取地形底图

  • 接入开放标准的地图数据服务如WMSTMS

  • 将网络端影像和本地存储数据整合

  • 运行时纳入新的地理数据层

  • 处理实时变化的数据

  • 与商业数据提供者融合

    "什么是WMSTMS"

社区资源

osgEarth是一个开源SDK,源代码向所有人开放,我们欢迎和鼓励大家加入社区进行测试、添加专题和修复漏洞。

支持论坛

包含一堆如何在论坛提问和参与讨论的方法建议

License

LGPL

osgEarth工具

osgearth_viewer
osgearth_version

使用Earth File

Earth File是描述地图的XML文件,创建earth file文件是配置地图和运行的最简单方法。你可以在osgEarth仓库的tests文件夹下找到大量earth file 实例,覆盖不同的主题和特征。建议您去挖掘。

Earth File的内容

osgEarth使用基于XML格式的earth file来管理向OSG场景中输入源数据。Earth File文件以.earth作为扩展名,实际是XML文件。

Earth File说明包括:

  • 创建的底图类型(地心或者投影)
  • 使用的影像、高程、矢量和模型资源
  • 数据缓存位置

一个简单的earth file例子

<map name = "MyMap" type="geocentric" version="2">
	<image name="blumarble" driver="gdal">
		<url>world.tif</url>
	</image>
</map>

    注意:必须提供version的版本号,2.x就填2。

多层影像数据

osgEarth 支持地图叠加多层影像数据。允许用户创建地图作为底层,往上叠加覆盖,或者在低分辨率地图上套入特定地区域的高分辨率小地图。
添加方式很简单,在earthfile 文件中加入多个“image”块:

<map name="Transportation" type="geocentric" version="2">
	<image name="bluemarble" driver="gdal">
		<url>file'slocal path or url</url>
	</image>
	<image name="bluemarble" driver="gdal">
		<url>file'slocal path or url</url>
	</image>
</map>

osgEarth 按照"image"块的顺序对多层影像进行渲染
    小贴士:对url中填入的相对路径会在earthfile所在的路径下查找

添加高程数据

在earth file中添加高程数据(或者“地形数据”)和加入影像相似,使用elevation块:

  <map name="Transportation" type="geocentric" version="2">
         <image name="bluemarble" driver="gdal">
           <url>file'slocal path or url</url>
     </image>
     <elevation name="srtm" driver="gdal">
              <url>srtmfile'slocal path or url</url>
      </elevation>
  </map>

注意:osgEarth仅支持单通道16bit整形或者32bit浮点型高程数据*

缓存Caching

有时候osgearth渲染数据的时候需要提前准备切片数据用来显示,cache的存在使osgEarth可以保存这次的结果用以下次使用,而不是每次重新计算。这样可以提高效率同时避免重复下载相同数据。

  <map name="Transportation" type="geocentric" version="2">
        <image name="bluemarble" driver="gdal">
              <url>file'slocal path or url</url>
        </image>
     <options>
           <cache type="filesystem">
                 <path>file'slocal path or url</path>
     </options>
  </map>

空间索引如何翻译

我们使用坐标系,一组一定精度的点来表示某个地点在地图上的位置。仅仅知道坐标系还不够,我们需要知道如何解释它。

A Spatial Reference (SRS) maps a set of coordinates to ca corresponding real location on the earth

SRS的组成

一个SRS包括:

  • 坐标系类型(Coordinate system type)
  • 水平基准线(Horizontal Datum)
  • 垂直基准线(Vertical Datum)
  • 投影(Projection)
坐标系类型

osgEarth支持三种类型的基础坐标系:

  • Geographic - 地理坐标系,坐标值为球面角度值(经度和纬度),典型坐标包括WGS84和NAD83.
  • 投影 - 局部坐标系,将地球的某个区域“投影”到2D笛卡尔平面(X,Y),包括UTM,US State Plane,和Mercator(墨卡托)等
  • ECEF - 全球的笛卡尔系统。ECEF= Earth Centered Earth Fixed;原点在地心的的3D笛卡尔坐标系(X,Y,Z)。ECEF是osgEarth渲染自己的图像时采用的坐标系。
水平基准线
垂直基准线
投影

SRS描述

有多种方法定义SRS。osgEarth支持如下方式:

WKT(Well Known Text)

WKT是OGC标准的描述坐标系方式。伴随地理空间数据,以“.prj”作为扩展的文件,如shapefile文件或影像。

PROJ4

特征和符号

理解特征

Features是矢量几何,不同于影像和高程数据(栅格数据),特征没有离散的显示分辨率。osgEarth可以在任意细节尺寸下进行渲染。
一个特征包含33要素:

  • 矢量几何(点、线和面的集合)
  • 属性(name/value对)
  • 空间索引(描述几何坐标)

创建特征层

osgEarth有两种方式渲染特征:

  • 像影像层一样栅格化
  • 像模块层一样镶嵌

栅格化

栅格化特征是最简单的——osgEarth将矢量“画”在影像切片上,然后像普通影像层一样的使用它。
osgEarth有一个栅格化特征驱动,driver=agglite,下文是将ESRI Shapefile文件渲染为栅格化影像的实例:

<model name="my layer" driver ="agglite">
	<features name="states" driver="ogr">
		<url>states.shp</url>
	</features>
	<syltes>
		<style type="text/css">
			states{
				stroke:		#ffff00
				stroke-width: 2.0;
				}
		</style>
	</styles>
</model>

镶嵌

镶嵌特征将输入矢量编译为OSG几何成分(点,线,三角,或者替代的3D模型)。主要的特征镶嵌插件是feature_geom驱动 —— 你会在大多数操作特征数据的earth file中看到它。

     <model name="my layer" driver ="feature_geom">
	<features name="states" driver="ogr">
		<url>states.shp</url>
	</features>
	<syltes>
		<style type="text/css">
			states{
				stroke:		#ffff00
				stroke-width: 2.0;
				}
		</style>
	</styles>
</model>

osgEarth使用model/view来渲染特征。类似于web应用中用CSS来样式化内容。
osgEarth对每个输入特征进行样式化。输出由样式表中的符号集合决定。包括:

  • 填充和划线—— 决定将数据绘制为面还是线
  • 压制——压制2D几何到3D形状
  • 替代——将几何图形用3D模型或者图标替代(比如🌲)
  • 海拔——与地图地形交互
  • 文本——控制标签
  • 渲染——光照、融合和深度试验

样式表

每个特征层都有对应的样式表,样式表就是earth file中的<styles>块。

*To be continue...

posted @ 2015-01-15 18:42  zzlblog  阅读(721)  评论(0编辑  收藏  举报