二维地图瓦片评测

假设你已经了解2D地图瓦片。

熟悉的XYZ(2D)

MapTiler的这页内容易于理解:

从技术上讲,它是一种称为“四叉树”的树结构:

image.png

特色

  • 能够代表整个地球
  • 放大查看详情
  • 你只需要根据需要下载所需的部分(支持流媒体播放)

这些特征在2D和3Dtiles中都是相同的。

我也想做3D平铺......

考虑到这一点,Cesium的规范“3D Tiles”现已成为OGC(开放地理空间联盟)的开放标准。

3D 瓦片当然是一种树状结构,但它的关键特点是不一定像 XYZ 瓦片那样是普通的树。 换句话说,你将空间划分为树状结构的方式非常灵活。

有3D Tiles 1.0和3D Tiles 1.1,这两种都是OGC的开放标准。 规格:3D 瓷砖规范

用三维瓦片可以表达什么

观看Cesium的演示版很容易看出它能走多远、能走多远。 有各种演示。

  • 3D网格:建筑、地形等。
  • 点群
  • 3D实例:放置大量相同对象(例如,电线杆)(GPU实例化)

元数据也可以分配给特征和顶点。

Untitled.jpg

谷歌照片写实3Dtiles

Google 写实 3Dtiles也以“3D Tiles 1.0”(截至 2023 年 9 月)提供。

谷歌写实3D瓷砖不仅表示地面伪影,还显示地形,所以在Cesium上显示时,隐藏Cesium提供的地形。

// Google Photorealistic 3D Tiles は地面もいっしょに含んでいるため、
// Cesiumが提供する地球は表示しなくてよい。
globe: false;

以下是调试显示中的一段引用,用来看看每个瓦片的样子:

Untitled2.jpg

顺便说一下,所有磁贴的文件大小大约在10到100 KB之间。

3Dtiles分割(1.0版本)

与二维的相似之处

  • 树状结构是一样的。
  • 你越关注家谱,细节就越细致。 HLOD = 层级细节

与二维的区别

  • 你可以完全自由地分配空间。 每个人都有自由的决定权。
    • 可以自由划分矩形体、球体或区域(这次不涉及)。
    • 当然,你也可以重复简单的4部或8部循环。
    • 你也可以将其划分为县、→市、→镇、区。
    • 什么都可以。
    • 注:3D Tiles 1.1 还具有“隐式铺砌”功能(稍后简要提及)。
  • 如果边界重叠,边界可以重叠。
  • 在增加细节层级(追踪树中的子节点)时,你可以选择细化:和细化: REPLACEADD
    • REPLACE → 将父图块内容与子图块内容交换的方法(→照片写实3D图块)
    • ADD → 将子图块内容添加到父图块内容的方法(→ OSM 构建演示)
    • 这些也可以在树的中段切换

构建树有两个主要规则。 剩下的就看你了

  • 孩子的内容不得超过父母的边界体积
  • 几何误差()越小,子节点的误差越大。geometricError

瓦片树结构简要概述

在谷歌写实3D瓷砖中查看实际的瓦片树,看起来是这样的:

  • tile tree 结构(= tileset)用 JSON 编写。
  • 你可以在树的中间引用另一个图块集文件(例如,对于全局图块集,用一个极大的 JSON 文件表示是不合适的或不可能的)。
  • 每个瓦片都会记录其几何误差()。 geometricError
    • 如果显示判断错误不足,则将继续追踪子节点

Tiling.jpg

3D Tiles 1.1 的新内容

3D Tiles 1.1(前称 3D Tiles Next)。

主要内容:

  • 所有三维数据现在都用 glTF 表示(在 1.0 版本中,glTF 是扩展)。
    • 之前使用的所有数据格式(.b3dm、.i3dm、.pnts、.cmpt)均已弃用。
  • 隐式平铺”现已上线
    • 使用“四叉树”或“八叉树”,如XYZ瓦片,可以高效地使用空间划分。 具体实现较为复杂,因此这里不讨论。

对于那些想了解更多的人,

规格和样品库存充足。

3D Tiles 1.0 和 1.1

glTF 2.0

glTF地理空间扩展

标准压缩方法与技术

铯支持什么:

  • 德拉科
  • 梅肖普
  • KTX2
  • 以及更多