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进行根节点合并再转换。可有效提升数据的组织调度效率。

相关推荐
乌夷2 天前
在pom.xml中通过repositories在Maven构建过程中访问setting.xml之外的仓库
xml·java·maven
振宇i2 天前
Mybatis xml动态SQL 判断失效问题
xml·sql·mybatis
程序员老王wd5 天前
java xml 文本解析
xml·java
小百菜6 天前
dom4j解析含有命名空间的XML
xml·dom4j
黎明晓月6 天前
MyBatis XML一个方法执行插入或更新操做(PostgreSQL)
xml·postgresql·mybatis
GoKu~6 天前
项目配置文件选择(Json,xml,Yaml, INI)
xml·json
枫叶落雨2226 天前
mybatis-plus: mapper-locations: “classpath*:/mapper/**/*.xml“配置!!!解释
xml·java·mybatis
double丶flower6 天前
mybatis在mapper.xml中怎么处理大于、小于、不等于号
xml·java·mybatis
一只爱打拳的程序猿6 天前
pom.xml和spring-config.xml
xml·java·spring
tonysh_zds6 天前
freemarker 读取template.xml ,通过response 输出文件,解决中文乱码问题
xml·java·开发语言