什么是3Dtiles?

3D 瓦片是一种用于流式传输和渲染大规模3D地理空间数据集的规范。它们采用分层结构高效管理和显示3D内容,通过动态加载适当的细节层级优化性能。该技术广泛应用于城市规划、建筑、仿真、游戏和虚拟现实领域,为复杂地理数据的可视化提供了标准化且互操作的解决方案。

3Dtiles示例:

瑞士图的苏黎世三维瓷砖

华盛顿 - 3D 曲面模型(Vricon,铯)

QGIS中的三维3Dtiles

要在QGIS中使用3D瓦片,你需要QGIS 3.34或更高版本。你可以在数据源管理器场景下添加一个新的3D瓷砖服务连接:

在QGIS中从数据源管理器添加新的3D瓦片服务
在QGIS中从数据源管理器添加新的3D瓦片服务

或者,你也可以从浏览器面板添加该服务:

浏览器面板中的3D瓦片数据提供者
浏览器面板中的3D瓦片数据提供者

要测试该功能,您可以使用以下3D瓷砖服务:

在线浏览编辑3dtiles        mp.gszh.xyz


Name: 3D Tiles example
URL: https://pelican-public.s3.amazonaws.com/3dtiles/agi-hq/tileset.json

创建与3D瓷砖服务的新连接
创建与3D瓷砖服务的新连接

然后你可以将新生成连接中的映射添加到QGIS:

向QGIS添加新的3D瓷砖
向QGIS添加新的3D瓷砖

默认情况下,图层是用纹理来样式的,但你可以更改它,让它能看到幕后线框网格:

3D 瓦片的网格线框
3D 瓦片的网格线框

你可以像向量多边形一样更改网格填充和线条符号。或者,你也可以使用纹理颜色。这样每个网格元素都会渲染成完整纹理的平均值。这在处理大量数据集并希望快速了解数据时非常理想:

带有网格纹理颜色的3D瓷砖
带有网格纹理颜色的3D瓷砖

要以3D方式查看数据,可以打开新的3D地图。类似于二维地图,通过放大/缩小,可以获取并显示更细分辨率的瓦片:

利用铯离子数据

Cesium ion 是一个基于云的平台,用于管理和流媒体3D地理空间数据。它简化了数据管理、可视化和共享。

要添加 Cesium ion 的 3D 瓷砖,你需要先在这里注册他们的服务:https://ion.cesium.com/tokens

Asset Depot下,你会看到一个公开数据集的目录。你也可以上传自己的3D模型(比如OBJ或PLY),对它们进行地理参考,并转换成3D瓷砖。

你也可以在 https://ion.cesium.com/assetdepot 下添加现有的瓦片服务,选择该瓦片服务,然后点击“添加到我的资产”:

Adding an existing dataset to your Cesium ion assets
将现有数据集添加到你的铯离子资产中

你可以使用来自 QGIS 仓库的 North Road 的优秀 Cesium ion 插件,将数据添加到 QGIS:

Adding Cesium ion assets to QGIS
向QGIS添加铯离子资产

处理谷歌3D数据

除了访问 Cesium ion 的 Google 写实 3D 瓷砖外,你也可以直接在 QGIS 中添加这些瓷砖。首先,您需要按照以下说明获取3D瓷砖的API密钥 https://developers.google.com/maps/documentation/tile/cloud-setup

注册过程中,您将被要求填写信用卡信息。目前(2023年11月),他们不会向你收取使用该服务的费用。

获得API密钥后,您可以使用以下连接信息添加Google磁贴:

Adding Google 3D tiles in QGIS
在QGIS中添加Google写实图块

注释与评论

  • 调整大型场景的地图范围

处理大型场景时,地图范围应设置为较小区域,以便3D显示。这是QGIS三维地图目前的局限,因为它无法处理超过500 x 500公里的场景。

要更改地图范围,可以打开项目属性,在视图设置中更改范围。在下面的示例中,地图范围仅限于伦敦的一部分,因此我们可以在3D地图中查看Google写实的瓦片而不会产生渲染问题。

Limiting project extent in QGIS
QGIS中项目范围的限制

3D tiles from Google in QGIS
谷歌在QGIS中的3D瓷砖

  • 网络缓存大小

如果你处理的是大型数据集,建议将网络缓存大小增加到1GB或更大。QGIS的默认值要低得多,导致数据渲染速度变慢。

Increasing Cache size in QGIS for faster rendering
在QGIS中增加缓存大小以加快渲染速度

  • 叠加其他三维数据

当你试图在全局三维瓦片上叠加其他数据集时,垂直基准可能不匹配,因此你会在三维地图上看到错误的位置。要解决这个问题,你可能需要使用高程偏移,在图层属性下沿Z轴移动数据:

Offsetting elevation of a layer in QGIS
QGIS中层的偏移高程

未来作品

这是QGIS中首次实现3D瓷砖。未来,我们希望增加更多处理和创建3D瓷砖的功能。我们的愿望清单(无特定顺序)是:

  • 全球视图:QGIS 3D无法处理大型场景或未投影视图。
  • 更高级的网格样式:例如,用户可以创建自己的样式。
  • 3D室内导航:举例来说,用户将能够在建筑内部导航,这有可能让BIM数据更接近QGIS的
  • 在QGIS中生成3D瓷砖:在QGIS中添加处理工具,从地图数据生成3D瓷砖。