cesium 源码分析 Cesium3DTileset (一)

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

       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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值