Osgearth的前世今生

1. osgearth简介

osgEarth是C++地理空间SDK和Terrain引擎,是基于OSG(OpenSceneGraph)的应用,许可证是 LGPL。支持建立OGS支持各种开放标准地图数据服务,如WMS、TMS等,支持各种格式的数据文件如栅格数据、矢量数量、高程数据等。

osgEarth的目标:

  • 提供基于osg开发3D地理空间应用的支持;
  • 直接从数据源可视化地形模型和影像变得更加简单;
  • 提供对开放式绘图标准,技术和数据的交互操作;

1.1 osgEarth的工具集

osgEarth自带很多协助处理earth文件和地理空间数据的工具.

osgearth_viewer: 从命令行加载并显示一个地图.osgEarth提供的地球操纵器用于控制相机,对地理空间数据的浏览进行了优化.

osgearth_version: 显示osgEarth的当前版本号.

osgearth__cache: 管理osgEarth的缓存.osgearth_cache较常用的用法:通过非交互方式–seed参数生成缓存信息.

osgearth_cache --seed file.earth

osgearth_package: 从earth文件创建一个基于TMS格式,可重复发布的包。

osgearth_package --tms file.earth --out package

osgearth_conv: 将瓦片源中到内容拷贝到另一个文件。所有参数以键值对方式出现,需要为每个驱动选项查找头文件。当然,输出驱动必须支持写(通过实现ReadWriteTileSource接口)。”in”属性来自于GDALOptions getConfig方法。”out”属性来自于MBTilesOptions getConfig方法。

osgearth_conv --in driver gdal --in url world.tif 
	--out driver mbtiles --out filename world.db

osgearth_tfs: 从特征源(例如shapefile)产生一个TFS数据集。通过将源预处理成网格结构(TFS),可极大提升大数据集的性能。同时,产生的TFS包可由web服务器提供服务。

osgearth_tfs filename

osgearth_backfill: 用于后期处理TMS数据集的特殊工具。一些web地图服务在不同缩放比例下会使用完全不同的数据集。例如,当缩放比例达到4级时,可能使用NASA 的BlueMarble,然后陡然切换到地球资源卫星数据。在2D场景下,对于较光滑的地图有效,但是在3D场景下,整张图看起来会很不均匀,因为在不同的LODs下,相邻的瓦片看起来会完全不同。

Osgearth_backfill产生一个TMS数据集(使用osgearth_package或其他工具),然后从指定的查看高度填充较低缩放级别的细节。例如,你可以指定最大缩放级别10,0-9的lods就可以从10级的数据重新生成。

osgearth_boundarygen: 产生边界地理信息,可使用osgEarth 将外部模型数据嵌入地形信息中。

osgearth_boundarygen model_file [options]

osgearth_overlayviewer: 调试叠加功能。运行时显示两个窗口,一个显示普通的地图视图,一个显示包含边界的视锥体视图(用于叠加计算)。

osgearth_graticule: 加载经纬线

最简单的运用:osgearth_viewer + *.earth,即可查看地图数据。

2. osgearth的典型例子

参考:

  1. my coding.net
  2. 我的GITHUB
  3. http://docs.osgearth.org/en/latest/about.html#introduction