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的典型例子
参考: