osgEarth用户手册-笔记

以下笔记来自《osgEarth用户手册》

CSDN分享:

目录

1. osgEarth 安装

1.1 获取源码

1.2 准备工作

1.3 编译osgEarth

1.4 测试

2. 建立地图

2.1 地图文件元素索引

2.1.1 简单图像文件

2.1.2 多重图像层

2.2 高程数据

3. .Earth文件索引

4. Driver 驱动

4.1 图像/高程图像驱动器

4.2 模型驱动 Model Drivers

4.2.1 Feature Geometry model driver 要素几何模型驱动

4.2.2 Feature Stencil model driver 特征模板模型驱动


1. osgEarth 安装

1.1 获取源码

github下载osgEarth源码比较方便

1.2 准备工作

准备osgEarth依赖的第三方库:

  1. GDAL
  2. CURL
  3. GEOS
  4. SQLite 3
  5. LibZIP

1.3 编译osgEarth

1.4 测试

输入osgviewer sample.earth进行简单测试

2. 建立地图

即:如何以.earth为后缀的xml文件定义自己的地图

Earth File的核心作用是指明以下三点:

  1. 创建的地图类型:geocentric(三维球面的)或projected(二维投影的),前者呈现在三维球体上,后者投影到二维平面。
  2. 你可使用的图像、三面图elevation、矢量和模型数据
  3. 你的数据缓存在哪里

包含大量Earth File文件的github库地址:

2.1 地图文件元素索引

2.1.1 简单图像文件

加载遥感影像,使用iamge标签,驱动(driver)选择gdal

<!--一个简单的earth文件的例子-->
<map name="Sample-2-1-1" type="geocentric" version="2">
    <!-- type有两种选项 geocentric 和 projected
	version表明osgearth为2.x版本 -->

    <!--全球影像图-->
    <image name="GlobeImage" driver="gdal">
        <!--driver为使用的驱动,加载影像,选择gdal-->
        <!--下面的url是读取影响的路径-->
        <url>D:/Project/OSG_project/05-《osgEarth用户手册》笔记/data/image/global.tif</url>
    </image>

    <!--文件缓存-->
	<options>
		<cache type="filesystem">
			<path>./FileCache2-1-1</path>
		</cache>
	</options>

</map>

如果只是图片,不加高程的话,显示出来不是一个正圆型,能看出棱角:

如果map的type属性是projected

<!--一个简单的earth文件的例子-->
<map name="Sample-2-1-1" type="projected" version="2">
    <!--
	type有两种选项 geocentric 和 projected
	version表明osgearth为2.x版本
	-->

    <!--全球影像图-->
    <image name="GlobeImage" driver="gdal">
        <!--driver为使用的驱动,加载影像,选择gdal-->
        <!--下面的url是读取影响的路径-->
        <url>D:/Project/OSG_project/05-《osgEarth用户手册》笔记/data/image/global.tif</url>
    </image>

    <!--文件缓存-->
	<options>
		<cache type="filesystem">
			<path>./FileCache2-1-1</path>
		</cache>
	</options>

</map>

2.1.2 多重图像层

osgEarth 支持多个图像源的地图。

在使用earth文件创建地图时,在基础层上覆盖高分辨率的插图,要添加多个图像到earth file文件中,只需要添加多个image标签即可。

注意:earth文件下面的图像会覆盖上面的图像。

2.2 高程数据

添加高程数据,使用标签heightfield,驱动为gdal

<!--加载高程数据-->
<map name="Sample-2-2" type="geocentric" version="2">

    <!--全球影像图-->
    <image name="GlobeImage" driver="gdal">
		<url>D:/Project/OSG_project/05-《osgEarth用户手册》笔记/data/image/global.tif</url>
    </image>

    <!--全球高程图-->
	<heightfield name="GlobeHeightfield" driver="gdal">
		<url>D:/Project/OSG_project/05-《osgEarth用户手册》笔记/data/heightfield/30m.tif</url>
	</heightfield>

    <!--文件缓存-->
	<options>
		<cache type="filesystem">
			<path>./FileCache2-1-1</path>
		</cache>
	</options>

</map>

加上高程数据后,基本变成正圆:

同理,将map的类型type改为projected,地图在二维平面上出现。图略

注:在《osgEarth用户手册》中,加载高程的标签是elevation,驱动driver为gdal,但是我的30m高程数据加载后报错,可能和高程数据类型有关,不过我没有验证。

3. .Earth文件索引

osgEarth <map>标签

osgEarth能够识别和读取两种方式的地图:

  1. Geocentric:如果地球类型属性是地心的geocentric,圆形的round,球体的globe,或者是地球earth,那么这个地球就是以一个完整的地球形状的。注意:只有以地心为坐标的墨卡托模型才能被呈现成一个地心坐标的球体
  2. Projected:如果地球类型属性projected或者平面(flat)的,那么这个地图就是一个平面投影的样子,这个类型的map在投影坐标系统中是非常有用的,比如UTM投影。而墨卡托模型和整个地球也可以用这种类型的map来表现,比如2D制图应用程序。

<map>标签属性:

name

可读的地图名称

可选

type

读取地图类型:geocentric(默认),projected

可选

version

制定地球文件格式的版本,使用osgEarth 2.x,版本号就是 "2"

必选

子元素:

<options>

配置地图和所有地形引擎的运行时行为可选

<images>

图像图层可选

<heightfield>

高程图层可选

<model>

一个模型的数据源(例如:功能,数据,外部模型)可选

<overlay>

地形褶状几何层可选

<Compositor>使用方法

<compositor元素>:这个元素控制osgEarth使用符合图像层

目前还没有使用到,暂时略过,后续补充...

4. Driver 驱动

4.1 图像/高程图像驱动器

这些驱动程序生成哪些构成地图的图片或者高程数据。

AGGlite将数据栅格化为若干图像片
ArcGIS从ESRI ArcGIS 地图服务系统或者网上ArcGIS服务器读取图像数据
Composite融合多层<image>层使之成为一个本地图像层
GDAL支持大量格式读取地理参考的影响和高程数据,包括GeoTIFF
OSG使用OpenSceneGraph图片reader / writers 来读取那些非地理参考的图像,比如jpeg格式的图片
TileCache……(不太懂这个驱动,手册上面也没解释清楚)
TileService从NASA WorldWind TileService库读取图像片
TMS从OSGeo TileMapService库读取图像片
WCS从OGC Web Coverage Service读取图像片
WMS从OSG Web Mapping Service读取图像片
VPB融合VitualPlanetBuilder地形

4.2 模型驱动 Model Drivers

模型驱动程序采集数据,并创建地形上可房子的节点。这些节点可能是“褶皱”层,也可能是三维模型

Feature GEometryOSG的几何渲染数据
Feature Stencil使用模板缓冲技术褶皱化地形矢量数据
Simple家在外部模型,并放置在场景图中

4.2.1 Feature Geometry model driver 要素几何模型驱动

建立矢量特征数据的OSG几何形状

这个驱动可以简单的将矢量数据嵌入到几何图形中,同时会有一个可选择的高度偏移,这样你可以将几何图形放置于地形上。

结构:

<feature>描述要渲染的要素必选
<style>定义矢量数据的整体外观可选
<class>定义一个或多个要素类的功能分类可选
<max_triangle_size>指定一个三角形的最大长度,角度。仅适用于geocentric型地图。可控制几何图形的细分曲面,使大型的形状可以更好地符合地球椭球的形状默认="5.0"
<feature_name>每个功能的解析式解析,名称在osg::Geometry中设置 

 

<map name="Feature Geometry Demo" type="geocentric">
    <image name="world" driver="gdal">
        <url>../data/world.tif</url>
    </image>

    <model name="states" driver="feature_geom">
        <!--配置OGR要素驱动来读取shapefile文件-->
        <features name="states" driver="ogr">
            <url>../data/usa.shp</url>
        </features>

        <!--对每个几何要素设置属性:名称-->
        <feature_name>[name]</feature_name>

        <!--外观细节-->
        <style type="text/css">
            states {
                stroke: #ffff00;
                stroke-width: 1.0;
                altitude-offset: 1000;
            }
        </style>
    </model>

    <lighting>false</lighting>
</map>

4.2.2 Feature Stencil model driver 特征模板模型驱动

使用模板缓冲技术褶皱化地形矢量数据

结构:

此驱动支持以下子元素:

<features>描述要渲染的特点必选
<style>定义矢量数据的整体外观可选
<class>定义一个或多个要素类的功能分类可选
<extrusion_distance>设定模板卷在各个方向上的距离可选,默认="300000"

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: osgEarth是一个开源的地理信息可视化引擎,是OpenSceneGraph的一个插件。它提供了一种简单而高效的方法来显示和操纵地理数据,包括卫星图像、DEM、矢量数据等。 osgEarth的最新版本是2.10.2,该版本修复了一些已知的问题和漏洞,提高了稳定性和性能。同时,它还新增了一些功能和改进,使其更加强大和易于使用。 在2.10.2版本中,osgEarth引入了新的特性,例如支持与GDAL库一起读取和处理地理数据,支持多线程绘制,提供了更好的性能和可扩展性。此外,osgEarth还增加了对地理纹理的支持,可以将地图瓦片作为纹理贴在三维模型上,实现更加逼真的地形显示。 此外,osgEarth还提供了一些工具和扩展,方便用户进行地理数据的导入、分析和可视化。它支持各种常见的地理数据格式,例如GeoTIFF、SHP、KML等,并提供了相应的API和工具来处理这些数据。 osgEarth的使用非常灵活,可以在各种应用程序中使用,特别适合于虚拟现实、游戏和地理信息系统等领域。它支持Windows、Linux和Mac等多个平台,用户可以根据自己的需求选择合适的平台进行开发和部署。 总之,osgEarth 2.10.2是一个功能强大、易于使用的地理信息可视化引擎,具有良好的性能和稳定性。它为开发人员提供了许多便利的工具和接口,使其能够轻松处理和展示地理数据。如果您对地理信息可视化有兴趣,不妨尝试一下osgEarth。 ### 回答2: osgEarth是一个用来创建和渲染地球的开源软件工具包。它是基于开源的OpenSceneGraph引擎开发的,提供了在三维场景中显示地理数据的能力。osgEarth可以将地球上的地理信息数据,如卫星影像、矢量地图、DEM(数字高程模型)等,以三维可视化的方式展示出来。 osgEarth 2.10.2是osgEarth的一个版本,其中2.10.2表示主要版本号为2,次要版本号为10,修订版本号为2。在这个版本中,通常会包括一些改进和修复bug的功能。 CSND是中国最大的IT技术社区之一,是程序员们学习交流和分享技术的平台。有很多从事计算机软件开发的人在CSND上发布自己的技术笔记、经验分享、开源项目等。 所以,osgEarth 2.10.2 CSND可以理解为一个在CSND上发布的osgEarth 2.10.2版本的相关技术资料,可以包括安装指南、使用教程、开发经验等。这样的资料对于想要了解osgEarth、使用osgEarth进行地理数据可视化的开发者来说,是非常有用的参考和学习资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值