5分钟了解清楚【osgb】格式的倾斜摄影数据metadata.xml有几种规范

数据格式同样都是osgb,不同软件生产的,建模是参数不一样,还是有很大区别的。尤其在应用阶段。

本文从建模软件、数据组织结构、metadata.xml(投影信息)、应用几个方面进行了经验性总结。不论您是初步开始建模,还是倾斜模型的应用方都可以有个了解,便于和业主或承建方能快速对清楚诉求。

1.大疆智图生产的osgb

不同的数据范围、体积、分块方式略有差异,下图是一份常见的大疆智图生产的osgb的文件结构

瓦片文件夹内部结构:

几个特性:

  • 默认成果由terra_osgbs文件夹包裹
  • 瓦片文件夹Block开头
  • 瓦片文件夹内部有文件夹同名osgb文件及不同level的名称文件组成
  • 配套metadata.xml文件

2.ContextCapture(Smart3D)生产的osgb:

不同的数据范围、体积、分块方式略有差异,下图是一份常见的ContextCapture(Smart3D)生产的osgb的文件结构

瓦片内文件结构

几个特性:

  • 默认成果由Data文件夹+metadata.xml组成
  • 瓦片文件夹Tile_开头
  • 瓦片文件夹内部有文件夹同名osgb文件及不同level的名称文件组成
  • 配套metadata.xml文件

3.metadata.xml是什么?

metadata.xml是一个xml格式文件,主要用于定义投影,根据不同投影类型的定义,共计有6中常见的结构(随着生产软件的升级,并非绝对),这里进行罗列展示

3.1EPSG模式metadata.xml

EPSG代表标准的投影定义 注:图新当前对4326-wgs84经纬度不支持,4490-国家2000经纬度不支持

XML 复制代码
<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4547</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>550901.32348177815,3360977.338184359,58.849999999403899</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.2EPSG带+模式metadata.xml

EPSG代号代表投影,+号后面是高程基准的EPSG定义。

XML 复制代码
<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4544+5773</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>622346.24540907482,4315810.9692699434,1156.2578820004351</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.3ENU模式metadata.xml

也叫东北天,相当于坐标原点给一个经纬度坐标,其他位置都是相对坐标原点的平面坐标

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<ModelMetadata version="1">
    <!--Spatial Reference System-->
    <SRS>ENU:38.318253169999998,117.86893173</SRS>
    <!--Origin in Spatial Reference System-->
    <SRSOrigin>0,0,106.90241103</SRSOrigin>
    <Texture>
        <ColorSource>Visible</ColorSource>
    </Texture>
</ModelMetadata>

3.4LOCAl模式metadata.xml

比较少见,也叫"任意坐标系"、"地方坐标系"模式,出现情况: 如果数据有控制点,控制点并未定义椭球参数、分带模式、中央经线、假东、假北等参数的情况下。没有和地理关系的对照。 目前只发现大疆智图生产的数据有这样的定义

XML 复制代码
<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4544+5773</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>622346.24540907482,4315810.9692699434,1156.2578820004351</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.5无SRS模式metadata.xml

比较少见,xml内没有SRS标签 主要是CC生产,控制点未设置投影类型,如3.4大疆智图生产的LOCAL模式。这个模式比较头疼,CC未写入原点坐标,只能在CC中查看原点坐标。 拿到这样数据的用户,是没办法在其他软件中正常进行地理定位的。

XML 复制代码
<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4544+5773</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>622346.24540907482,4315810.9692699434,1156.2578820004351</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.6prj字符串模式metadata.xml

比较少见,大疆智图生产过程中,如果选择了外部的prj文件,并且prj文件内没有epsg的定义,会直接写入prj字符串到SRS。 注意!!!:如果在标准的prj中修改了假东、假北、椭球参数等参数,大疆会使用这些参数进行建模,但是生产出的medata.xml文件是EPSG的模式。 其他软件如果按照EPSG解析就会出错。

XML 复制代码
<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>PROJCS["",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4549"]]</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>564373,4198255,0</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

4.osgb是什么,为什么选择osgb?

此处不做深入介绍,大概知道osgb的一些特性

4.1osgb是什么?

osgb是OpenSceneGraph(做三维渲染引擎的)开源组织维护的一个二进制流类型的数据结构,由国内的王锐首次提出、定义并维护至今。

如果要做osgb文件流本身的读取、写入可参考相关规范。

普通的应用开发者,只需要关注osgb文件的组织结构即可,知道如何优化解决自身业务问题即可,支持该类型数据的三维渲染引擎都有解析方法。

osgb的核心是瓦片切分,lod(层次细节模型)构建。

LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

4.2为什么选择osgb?

建模软件生成的数据格式为什么选择osgb?

  • osgb是开源协议,不涉及版权问题
  • osgb的lod有分页机制,调度灵活
  • osgb是二进制流文件,提交小

5.osgb倾斜摄影的一些说明

图新地球加载osgb数据非常灵活、简单,也是第一批支持osgb格式倾斜模型的三维GIS平台。

5.1lfp文件

用户在导入osgb到图新地球桌面端时,会根据xml的解析,自动生成一个lfp格式的索引文件。后面无需重复解析,并可灵活修改数据的位置。

lfp是图新自己定义的一个xml文件。是图新地球桌面端图层管理的基本单元。

5.2lob文件

图新在使用osgb文件时,尤其前期做web加载解析时发现,osgb还有较大优化空间,尤其是当前数据生产厂商生成的osgb文件,在web传输、解析下可以做进一步优化扩展。 图新定义了自己的倾斜模型文件协议lob(当前并未开源,主要自己使用)

5.3合并根节点

图新可以在现有osgb瓦片(CC和大疆智图生产的数据均支持)的基础上向上抽析,一直到只有一个根节点。可以加快数据的调度显示速度。

CC后来已经可以生成合并根节点的数据,只是对电脑性能要求更高

大疆智图生成的数据,根目录下有一个名称为Block.osgb或者Model.osgb,加载这个文件,会自动索引所有的数据。只是这个文件只是做了索引或者对每一个瓦片的首个文件做了合并,并未重新抽析。导致Model.osgb文件经常超过100M,web下基本无法应用。 遇到此情况可直接删除。

5.4【和3dTiles的关系】

当前市面上出现了不少osgb转3dtiles的工具,主要解决cesium等开源渲染引擎加载osgb格式的倾斜模型。

3dtiles同样是一个优秀的开源数据协议。

如果你是一个开发者,发现转换后,cesium加载数据卡顿,可尝试上面介绍的【合并根节点】,先对osgb进行根节点合并再转换。可有效提升数据的组织调度效率。

相关推荐
武子康1 天前
Java-39 深入浅出 Spring - AOP切面增强 核心概念 通知类型 XML+注解方式 附代码
xml·java·大数据·开发语言·后端·spring
Ll13045252983 天前
基于 COM 的 XML 解析技术(MSXML) 的总结
xml
在代码的海洋中寻找亚特兰蒂斯4 天前
AJAX对于XML和JSON的处理
xml·ajax·json
BinField5 天前
ToolsSet之:XML工具
xml·windows·microsoft
SEO-狼术5 天前
Connect Directly to Oracle XML Data
xml·数据库·oracle
YSoup5 天前
2025年目前最新版本Android Studio自定义xml预览的屏幕分辨率
android·xml·android studio
abcnull7 天前
mybatis的mapper对应的xml写法
xml·sql·spring·mybatis·mapper
Blue桃之夭夭7 天前
HTML、XML、JSON 是什么?有什么区别?又是做什么的?
xml·html·json
小于村7 天前
pom.xml 文件中配置你项目中的外部 jar 包打包方式
xml·java·jar
扶风呀7 天前
pom.xml中标签详解_
xml