Google实景3D瓦片path属性含义及与XY瓦片关联问询
Google Photorealistic 3D Tiles Path索引与XY瓦片的关联方法
核心结论
Google Photorealistic 3D Tiles的path索引本质是八叉树(Octree)节点的十进制编码,每个数字位(0-7)对应八叉树一层的分支选择。要关联到XY瓦片,需从八叉树的三维分支中提取二维X/Y分量,再拼接为对应层级的瓦片坐标。
1. Path索引的结构拆解
你观察到的“多个3位值(0-7)构成”,实际是八叉树的层级分支编码:
- 八叉树将3D空间沿X、Y、Z三轴各平分一次,形成8个子节点,每个子节点用0-7的数字唯一标识(二进制为三位,分别对应X/Y/Z轴的选择:
X(最高位)Y(中间位)Z(最低位))。 path字段的十进制数字,其每一位就是八叉树从根到当前节点的层级分支序列(例如path=20527060715040的每一位2,0,5,...对应八叉树的14层分支)。
2. 从Path到XY瓦片的映射步骤
步骤1:拆分Path的层级分支
将path的十进制数字拆分为单个数字字符,每个字符对应八叉树的一层分支(比如20527060715040拆分为[2,0,5,2,7,0,6,0,7,1,5,0,4,0],共14层)。
步骤2:提取每一层的X/Y分量
将每个分支数字转换为3位二进制,提取前两位作为X和Y的二进制位:
| 分支数字 | 二进制 | X位(最高位) | Y位(中间位) |
|---|---|---|---|
| 0 | 000 | 0 | 0 |
| 1 | 001 | 0 | 0 |
| 2 | 010 | 0 | 1 |
| 3 | 011 | 0 | 1 |
| 4 | 100 | 1 | 0 |
| 5 | 101 | 1 | 0 |
| 6 | 110 | 1 | 1 |
| 7 | 111 | 1 | 1 |
步骤3:拼接X/Y二进制坐标
将所有层级的X位按顺序拼接成一个二进制数,转换为十进制即为瓦片的X坐标;同理拼接Y位得到Y坐标。
步骤4:确定瓦片层级
拆分出的分支数字数量,就是对应的2D瓦片层级(例如14层分支对应14级瓦片)。
3. 额外注意点
- 坐标转换:Google 3D Tiles基于ECEF坐标系,得到的XY坐标是八叉树平面投影后的结果,若需对应Web Mercator等常用2D瓦片坐标系,需额外做投影转换。
- Epoch参数:
node_data_epoch、imagery_epoch仅影响瓦片的版本缓存,不改变Path与XY的映射逻辑。
内容的提问来源于stack exchange,提问作者Jordi T
相关产品推荐
相关产品推荐

