之前有讲过Cesium的三维数据格式:3dtiles。。。https://www.cnblogs.com/2008nmj/p/14395128.html
超图的三维数据格式和它有什么不同呢?它比3dtiles好在哪里?
https://github.com/SuperMap/s3m-spec/tree/master/S3M_SDK/S3M_Parser_JS
空间三维模型数据格式规定了三维地理空间数据格式的逻辑结构及存储格式要求。
该标准适用于网络环境和离线环境下海量、多源三维地理空间数据的数据传输、交换和高性能可视化,以及满足不同终端(移动设备、浏览器、桌面电脑)上的三维地理信息系统相关应用。
该标准定义的S3M数据格式具备以下技术特点和优势:
1、支持表达多源地理空间数据:倾斜摄影模型、BIM、人工建模、激光点云、矢量、地下管线等多源数据。
2、具备海量数据高效绘制的能力:支持LOD、批次绘制、实例化等,提升渲染性能。
3、具备单体化选择和查询能力:支持高效选择、支持批量修改对象颜色、批量修改对象可见性。
4、简洁易读:格式简洁,易解析,适用于WebGL等轻量级客户端。
5、高效传输:数据紧凑,以二进制形式保存,占用空间小,传输性能高。
6、快速载入显卡:数据结构尽可能跟OpenGL接口保持一致,减少加载时间,高性能,低消耗。
7、跨终端:独立于任何终端,适用于PC端、Web端、移动端,具有较好的兼容性。
8、扩展性好:支持扩展,允许增加一些多用途扩展或特定厂商的扩展。
9、完善的工具支撑:提供开源免费的S3M数据解析和转换工具,支持3D-Tiles、OSGB等格式与S3M格式相互转换。(开源地址:https://github.com/SuperMap/s3m-spec。)
10、完善的配套设施:完整的解决方案,成熟的可行性,强大的实用性。基于S3M形成了完整的B/S及C/S架构的三维GIS应用解决方案,从数据生成、服务器端发布到多种客户端加载应用等多个环节解决用户实际问题。
目录
前言 Ⅲ …………………………………………………………………………………………………………
引言 Ⅳ …………………………………………………………………………………………………………
1 范围 1 ………………………………………………………………………………………………………
2 规范性引用文件 1 …………………………………………………………………………………………
3 术语和定义 1 ………………………………………………………………………………………………
4 符号和缩略语 2 ……………………………………………………………………………………………
4.1 缩略语 2 ………………………………………………………………………………………………
4.2 UML图示符号 2 ………………………………………………………………………………………
4.3 UML多样性描述 3 ……………………………………………………………………………………
5 基本规定 3 …………………………………………………………………………………………………
5.1 基本数据类型 3 ………………………………………………………………………………………
5.2 字符串类型 4 …………………………………………………………………………………………
5.3 json格式存储 4 ………………………………………………………………………………………
6 组织结构 4 …………………………………………………………………………………………………
6.1 文件组织 4 ……………………………………………………………………………………………
6.2 树形结构描述 5 ………………………………………………………………………………………
7 存储格式 5 …………………………………………………………………………………………………
7.1 描述文件 5 ……………………………………………………………………………………………
7.2 数据文件 8 ……………………………………………………………………………………………
7.3 索引树文件 21 …………………………………………………………………………………………
7.4 属性文件 22 ……………………………………………………………………………………………
附录 A (资料性附录) 数据示例 25 …………………………………………………………………………
参考文献 32 ……………………………………………………………………………………………………
4.3 UML多样性描述
本标准涉及的 UML图中多样性描述含义见表2。
表2 UML图多样性描述
5 基本规定
5.1 基本数据类型
本标准涉及的基本数据类型规定见表3。
表3 数值数据类型规定
5.2 字符串类型
本标准涉及的字符串数据类型用String对象描述,采用 Unicode编码,字符集规定为 UTF8。
String{ int32 length; //字节数 byte str[length];//数据内容 }
5.3 json格式存储
本标准涉及的json格式存储,规定 UTF8编码,不带BOM 头。
6 组织结构
6.1 文件组织
本标准规定的数据的组成文件主要包括:描述文件、数据文件、索引树文件、属性文件。
描述文件和数据文件是基础组成部分。描述文件中包含一个或多个 TileTree的根节点路径;数据 文件通过TileTree组织,TileTree中每个Tile对应一个.s3mb文件;索引树文件是对 Tiletree中各 Tile的描述,可以在不加载实际数据的情况下,获取LOD层的各Tile的包围盒、LOD切换信息、挂接 的子节点文件路径等,主要作用是加速 Tile文件检索的效率;属性文件包括属性描述文件和属性数据 文件。各类文件的组织形式见表4。
表4 文件组织形式
6.2 树形结构描述
树形结构相关对象的UML图见图1。
图1 树形结构UML图
图2 描述文件的UML图
7.1.2 描述文件标签信息
描述文件各标签含义见表5。
表5 描述文件各标签含义
表6Rect对象各标签含义
表7 Range对象各标签含义
表8 WDescript对象各标签含义
表9 Position对象各标签含义
表10 Point3D对象各标签含义
表11 TileTreeInfo对象各标签含义
表12 BoundingboxInfo对象各标签含义