osgEarth的.earth文件解析

发布时间 2023-05-25 14:37:04作者: 远方是什么样子

.earth 文件的作用
osgEarth 实际上是通过 .earth 文件经过图层、选项和坐标系配置等参数解析后的 osg 节点,可通过 osgEarth 中的 findMapNode 函数查找到加载的地图节点,然后加载到三维场景中。

.earth 文件标签
.earth 文件中的 map、image 和 option 等节点都代表加载影像的属性,如 image 中的 url 代表源文件路径,cache 代表缓存路径, option 中 cache-only 表示仅读缓存,跳过源文件数据。

文件标签:

<map> 标签:earth 文件的主标签
type 属性: 主要标识使用的坐标系统
球心坐标系的使用 Geocentric (球形)
平面投影的使用 Projected (平面)
version 属性:标识 osgEarth 的大版本
name 属性: map名称
<heightfield> 标签:定义高程数据 (相同作用的标签还有一个 <elevation>标签 )
name:高程名称
driver:驱动
url:定义数据来源
<image> 标签:定义影像数据
name:影像名称
driver:驱动
url:定义数据来源
<cache> 标签:用来定义缓存, 在options 下:
type:指定缓存类型
filesystem:当前只支持filesystem,之前还有(TMS、sqlite3)
path:指定路径
driver 驱动介绍
gdal
gdal 属于图像驱动,支持大量带地理参考的影像和高程数据,一般处理本地的影像和高程;直接使用 *.tif 文件。

feature_geom
feature_geom 属于模型驱动,一般读取矢量文件。

tms 和 wms
图像驱动:

tms 和 wms 是从远程获取数据,是一种协议;

tms:从 OSGeo TileMapServie 库读取图像片;

wms:从 OGC Web Mapping Service 读取图像片;

flatgis
图像驱动:

flatgis 是一个数据集,一般写文件夹的名称。

mapNode 管理结构

.earth 文件的使用
// 读取 .earth 文件
osg::ref_ptr<osg::Node> rpNode = osgDB::readNodeFile("./earth_image/lxf.earth");
// 节点转化为地图节点
osg::ref_ptr<osgEarth::MapNode> mapNode = osgEarth::MapNode::findMapNode(rpNode.get());
// 添加到根节点
root->addChild(mapNode.get());

————————————————
版权声明:本文为CSDN博主「娄肖飞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/louxiaofei_java/article/details/127296727