cesium中的Cesium3DTileset是用来解析3DTiles数据的类,了解这一步之前建议对3Dtiles及gltf的数据标准有所了解,同时对gis系统有所了解。
3Dtiles:

gltf/glb:

gis:
Cesium3DTileset是一个cesium对外的接口类用于接收3DTiles数据,调用方法如下:
var tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
url : 'http://localhost:8002/tilesets/Seattle/tileset.json',
}));
在Cesium3DTileset中解析tileset.json的过程如下:
function Cesium3DTileset(options) {
................
var that = this;
var resource;
// 将url加入到微任务当中
when(options.url)
.then(function (url) {
// 基本路径
var basePath;
// 根据url创建Resource对象
resource = Resource.createIfNeeded(url);
// 保存请求的资源(最原始的url)
that._resource = resource;
// ion resources have a credits property we can use for additional attribution.
// 资源版权
that._credits = resource.credits;
// 资源是json还是数据
if (resource.extension === "json") {
// 获取基本路径
basePath = resource.getBaseUri(true);
} else if (resource.isDataUri) {
// 如果资源是数据,则basePa

本文深入探讨Cesium中的Cesium3DTileset类,它是解析3DTiles数据的核心组件。通过when库处理异步加载,解析tileset.json,构建瓦片树并处理父子关系。详细介绍了从url开始,如何通过Resource对象处理路径,加载json数据,解析资产信息,构建瓦片结构,直至最终形成3D场景的完整流程。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



