osgEarth为开发osg应用提供了一个地理空间SDK和地形引擎.

osgEarth的目标:

l 提供基于osg开发3D地理空间应用的支持;

l 直接从数据源可视化地形模型和影像变得更加简单;

l 提供对开放式绘图标准,技术和数据的交互操作;

在很多情形下,osgEarth可以替代离线地形数据库创建工具,你可以通过osgEarth完成如下工作:

获取地形基础地图并快速而流畅的运行

访问开放式标准的地图数据服务,例如WMS和TMS

将基于web服务的影像数据和本地存储的数据整合

在运行时嵌入新的地理空间数据层

超时处理可能改变的数据

集成商业数据源

社区资源

osgEarth是一个自由开源的SDK,任何人斗可以获取源码,同时欢迎和鼓励参与社区的测试,新功能研发和bug修复.

工具

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<mask> 将外部模型数据嵌入地形信息中。

osgearth_boundarygen model_file [options]

osgearth_overlayviewer

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

osgearth_graticule

加载经纬线

地图

Osgearth提供了大量的地图文件,每个文件都对应某类功能,可通过osgearth_viewer查看运行效果。

Feature_drapped_lines.earth: 显示国界线

Feature_clip_plane.earth: 显示透明地球+国界线

Feature_custom_filters.earth: 根据缩放级别动态显示国名

Feature_drapped_polygons.earth: 相邻国家使用不同颜色显示

Feature_models.earth: 紧贴地表绘制的三维图形

Graticule.earth: 显示经纬线及经纬线位置(包含较清晰高层数据,未穿越云层)

Ldb.earth: 在地球某一高度显示一只静态的飞机

实例

以下地图文件基于osgearth提供的数据,包含一个地球、经纬线、国界线、各国名字。

  1.  
    <!--
  2.  
    osgEarth Sample
  3.  
     
  4.  
    Demonstrates feature draping using projective texturing,
  5.  
    i.e. "altitude-clamping: terrain-drape".
  6.  
    -->
  7.  
     
  8.  
    <map name="Geometry Rasterizer Demo" type="round" version="2">
  9.  
     
  10.  
    <options>
  11.  
    <lighting>false</lighting>
  12.  
    <terrain min_lod="16"/>
  13.  
    </options>
  14.  
     
  15.  
    <image name="world" driver="gdal">
  16.  
    <url>../data/world.tif</url>
  17.  
    <cache_policy usage="no_cache"/>
  18.  
    </image>
  19.  
     
  20.  
    <model name="world_boundaries" driver="feature_geom">
  21.  
     
  22.  
    <features name="earth" driver="ogr">
  23.  
    <url>../data/world.shp</url>
  24.  
    <build_spatial_index>true</build_spatial_index>
  25.  
    </features>
  26.  
     
  27.  
    <styles>
  28.  
    <style type="text/css">
  29.  
    world {
  30.  
    stroke: #ffff00;
  31.  
    stroke-width: 5px;
  32.  
    altitude-clamping: terrain-drape;
  33.  
    }
  34.  
    </style>
  35.  
    </styles>
  36.  
     
  37.  
    </model>
  38.  
     
  39.  
    <extensions>
  40.  
    <graticule>
  41.  
    <!-- The approximate number of grid lines that you would like to see in your view extent.
  42.  
    This number, along with the resolutions list, will be used to select a resolution on each view.
  43.  
    -->
  44.  
    <grid_lines>10</grid_lines>
  45.  
     
  46.  
    <!-- The grid resolutions, in degrees that you want to see, all separated by a space and sorted from lowest resolution to highest -->
  47.  
    <!--
  48.  
    <resolutions>10 5 2.5 1.25</resolutions>
  49.  
    -->
  50.  
     
  51.  
    <!-- The grid line color -->
  52.  
    <color>#f7a73f70</color>
  53.  
     
  54.  
    <!-- The label color -->
  55.  
    <label_color>#ffff00ff</label_color>
  56.  
     
  57.  
    <!-- Specify the line width -->
  58.  
    <line_width>2</line_width>
  59.  
    </graticule>
  60.  
    </extensions>
  61.  
     
  62.  
    <model name="cities" driver="feature_geom">
  63.  
     
  64.  
    <features name="cities" driver="ogr">
  65.  
    <url>../data/world.shp</url>
  66.  
     
  67.  
    <!--Define a ChangeAttributeFilter, which is defined in the osgearth_featurefilter example. This will change the cntry_name of all countries to osgEarthLand.-->
  68.  
    <change_attribute key="cntry_name" value="osgEarthLand"/>
  69.  
    </features>
  70.  
     
  71.  
    <styles>
  72.  
    <style type="text/css">
  73.  
    cities {
  74.  
    text-provider: annotation;
  75.  
    text-content: [cntry_name];
  76.  
    text-priority: [pop_cntry];
  77.  
    text-halo: #3f3f7f;
  78.  
    text-align: center_center;
  79.  
    text-declutter: true;
  80.  
    }
  81.  
    </style>
  82.  
    </styles>
  83.  
     
  84.  
    </model>
  85.  
     
  86.  
     
  87.  
    </map>

第15行加载地球模型,第20行加载国界,第39行加载经纬线,第62行加载国名。

osgearth介绍的更多相关文章

  1. osgearth介绍(转载)-feature_labels.earth

    初识osg OSG的诞生 在 1997 年时,Don Burns 由于喜欢滑翔机运动且对计算机图形学非常熟悉,在 LINUX 上写了一个控制滑翔机的小引擎,这便是 OSG 的最初雏形.后来在 1998 ...

  2. OSGEARTH三维地形开源项目

    第一章   OSGEarth介绍 第二章   OSGEarth编译环境配置 OSGEarth的编译环境配置随着版本的不同.运行平台的不同,也有很大的差异.本章主要以Windows XP SP3(x86 ...

  3. [原][osg][osgearth]倾斜摄影1.介绍

    总体介绍: 倾斜摄影就是将拍好的数据,三角网格化再附上贴图. 目前流行处理软件: Street Factory.PIX4DMapper.smart3D 后期开发平台:超图 Skyline smart3 ...

  4. osg实例介绍

    osg实例介绍 转自:http://blog.csdn.net/yungis/article/list/1 [原]osgmotionblur例子 该例子演示了运动模糊的效果.一下内容是转自网上的:原理 ...

  5. OSG入门即osgEarth建立一个地球的详细步骤

    OSG入门即osgEarth建立一个地球的详细步骤 转:http://blog.csdn.net/xiaol_deng/article/details/9246291 最近在学习有关osg的知识,刚开 ...

  6. OSG+VS2010+win7环境搭建---OsgEarth编译

    OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...

  7. [osgearth]通过API创建一个earth模型

    通过API的方式大体需要以下几个步骤: 创建map对象—— 创建影像数据层—— 创建高程数据层—— 将影像数据层以及高程数据层加入到map对象—— 根据前面创建的map对象创建mapNode节点—— ...

  8. OsgEarth开发笔记(一):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(上)

    前言   OSG研究之后,做地理GIS显示了地球:<项目实战:Qt+OSG教育学科工具之地理三维星球>,这一文章是基于OSG做的,而基于OsgEarth是可以进一步对地球进行深度操作,所以 ...

  9. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

随机推荐

  1. 【刷题】Git工作流-相关知识点

    参考资料:[学习总结]Git学习-GIT工作流-千峰教育(来自B站) 1-Git工作流 GitFlow流五大分支: 主干分支 热修复分支 预发布分支 开发分支 功能分支 GitFlow 工作流定义了一 ...

  2. TOMCAT原理详解及请求过程(转载)

    转自https://www.cnblogs.com/hggen/p/6264475.html TOMCAT原理详解及请求过程 Tomcat: Tomcat是一个JSP/Servlet容器.其作为Ser ...

  3. 【很好的分享】zookeeper系列

    http://blog.csdn.net/tswisdom/article/details/41522069

  4. 通过VuePress管理项目文档(二)

    通过vue组件实现跟:Element相似的效果.需要在VuePress网站中将自己的项目中的Vue组件运行结果展示在页面中. 至于如何将组件在VuePress网站中展示请参考:https://segm ...

  5. HDU1166-ZKW树

    单点修改,区间求和 // // Created by helica on 2018/3/18. // //zkw #include <cstdio> #include <cstrin ...

  6. js手机滑块模仿

    点击文本框滑动选值 手机屏幕上的上下翻滚菜单使用JS实现.经过十几个小时的折磨,终于有了最初版本.实现办法如下描述: 一.要求和方法 1.一个input输入框,点击后弹出一个翻滚菜单盖在其上,翻滚选好 ...

  7. JavaScript - proxy

    Proxy 对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等). 来看看常用的方法 handler.get() let o = { name: 'liwenchi', age: 1 ...

  8. 阿里云配置安全组(配置入口port)

    访问:www.aliyun.com 登录后,左上角点击: 点击[云服务器] 点击右下角[配置规则] 入口 出口

  9. [CQOI2014]危桥

    题目描述 Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双 向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次. ...

  10. ElasticSearch常用操作命令

    查看系统信息: curl 'http://username:password@192.168.0.40:9200/' curl 'http://username:password@127.0.0.1: ...