Cesium之3dTile 数据文件

83 阅读2分钟

数据组织结构

在这里插入图片描述
有三类数据组成Tileset.json类似索引文件,Styling 样式文件和模型等数据组成。

一、Tileset.json

cesuim加载3dTile 数据时就是先读取Tileset.json文件。

{
  "asset" : {
    "version": "1.0",
    "tilesetVersion": "e575c6f1-a45b-420a-b172-6449fa6e0a59",
  },
  "properties": {
    "Height": {
      "minimum": 1,
      "maximum": 241.6
    }
  },
  "geometricError": 494.50961650991815,
  "root": {
    "boundingVolume": {
      "region": [
        -0.0005682966577418737,
        0.8987233516605286,
        0.00011646582098558159,
        0.8990603398325034,
        0,
        241.6
      ]
    },
    "geometricError": 268.37878244706053,
    "refine": "ADD",
    "content": {
      "uri": "0/0/0.b3dm",
      "boundingVolume": {
        "region": [
          -0.0004001690908972599,
          0.8988700116775743,
          0.00010096729722787196,
          0.8989625664878067,
          0,
          241.6
        ]
      }
    },
    "children": [..]
  }
}

在这里插入图片描述

1. asset 数据版本信息

  • version: 数据版本号

2. properties 数据集的外包框信息

  • 数据外包立方体

3. geometricError

单位是米 (关于这个的含义请看另一帖子3DTile 的geometricError含义

4. root 跟节点


tileset.json 的四叉树、kd树或八叉树的跟节点

  • 四叉树

image

  • kd树
    当每个图块具有由平行于x,y或z轴(或纬度,经度,高度)的分割平面分隔的两个子图时,创建kd树。当水平沿树向下增加时,分割轴通常是循环旋转的,并且可以使用中值分割,表面区域启发法或其他方法来选择分割平面。
    在这里插入图片描述
  • 八叉树
    八叉树通过使用三个正交分裂平面来扩展四叉树以将瓦片细分为八个子元素。
    image

在这里插入图片描述

1)transfrom 变换矩阵

变换矩阵不是必须的,可以没有。若有变换矩阵,则从根节点作用到底部。
image

  • b3dm 变换矩阵T=T0* T1 * T3
  • i3dm 变换矩阵T= T0 * T1 * T4
  • pnts 变换矩阵T=T0*T2
2)boundingVolume 外包范围
  • 外包矩形体

  • 外包球

3)refine 加载方式

是加载当前子节点的方式,是3dTile的一个重要字段有两个参数

  • ADD 就是加载当前节点是新增的方式。
父节点子节点
在这里插入图片描述image
  • REPLACE 就是加载当前节点替换父节点的过程
父节点子节点
image在这里插入图片描述