Cesium 地球(2)-瓦片创建

Cesium 地球(2)-瓦片创建

QuadtreePrimitive代码执行4个步骤:

  • step1: update()
  • step2: beginFrame()
  • step3: render()
  • step4: endFrame()

但并不是瓦片的创建步骤。

1、创建 QuadtreeTile 基于 step3: render()
step3: render()selectTilesForRendering()

selectTilesForRendering中, 创建 QuadtreeTile
然后将QuadtreeTile加入到_tileLoadQueueHigh队列。

2、创建 GlobeSurfaceTile 基于 step4: endFrame()

GlobeSurfaceTile.initialize() 中创建 GlobeSurfaceTile

step4: endFrame()processTileLoadQueue()processSinglePriorityLoadQueue()
           (tileProvider as GlobeSurfaceTileProvider).loadTile()
              ┖ GlobeSurfaceTile.processStateMachine()
                  ┖ GlobeSurfaceTile.initialize()

并且在 GlobeSurfaceTile.initialize 中, tile.state 状态发生切换:

QuadtreeTileLoadState.START => QuadtreeTileLoadState.LOADING
3、创建 TileImageryimagery 基于 step4: endFrame()

基于step3: render()中的GlobeSurfaceTile.initialize中:

(layer as ImageryLayer)._createTileImagerySkeletons() 中创建 TileImageryimagery

GlobeSurfaceTile.initialize()prepareNewTile()
       (layer as ImageryLayer)._createTileImagerySkeletons()
4、状态切换基于 step4: endFrame()
step4: endFrame()processTileLoadQueue()processSinglePriorityLoadQueue()
           (tileProvider as GlobeSurfaceTileProvider).loadTile()
              ┖ GlobeSurfaceTile.processStateMachine()
                  ┃
                  ┃ // 网格状态机processTerrainStateMachine()
                  ┃
                  ┃ // 栅格状态机
                  ┖ surfaceTile.processImagery()
                       (image as Imagery).processStateMachine()

后面 GlobeSurfaceTile的状态切换就由 processStateMachine处理。
请添加图片描述
请添加图片描述
请添加图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值