• Cesium 地球(2)-瓦片创建


    Cesium 地球(2)-瓦片创建

    QuadtreePrimitive代码执行4个步骤:

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

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

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

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

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

    GlobeSurfaceTile.initialize() 中创建 GlobeSurfaceTile

    step4: endFrame()processTileLoadQueue()processSinglePriorityLoadQueue()
               (tileProvider as GlobeSurfaceTileProvider).loadTile()
                  ┖ GlobeSurfaceTile.processStateMachine()
                      ┖ GlobeSurfaceTile.initialize()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

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

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

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

    GlobeSurfaceTile.initialize()prepareNewTile()
           (layer as ImageryLayer)._createTileImagerySkeletons()
    
    • 1
    • 2
    • 3
    4、状态切换基于 step4: endFrame()
    step4: endFrame()processTileLoadQueue()processSinglePriorityLoadQueue()
               (tileProvider as GlobeSurfaceTileProvider).loadTile()
                  ┖ GlobeSurfaceTile.processStateMachine()
                      ┃
                      ┃ // 网格状态机processTerrainStateMachine()
                      ┃
                      ┃ // 栅格状态机
                      ┖ surfaceTile.processImagery()
                           (image as Imagery).processStateMachine()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

  • 相关阅读:
    线性二分类——机器学习
    solidity笔记
    2.6 宽带接入技术
    Docker的配置与容器的拉取镜像、端口映射
    10年的老测试告诉你八大测试用例设计方法
    软考高级系统架构论文 注意事项
    Sass中@each、@for、@if的搭配使用
    便捷高效的电能管理:利用PLC远程控制网关实时监控配电箱
    【Vue.js设计与实现】第3章 Vue.js 3 的设计思路
    uniapp基础篇 - - 页面跳转和传值
  • 原文地址:https://blog.csdn.net/qq_21476953/article/details/133081884