Cesium瓦片的下载流程


化石原创文章,转载请注明来源并保留原文链接


JavaScript中,我所知的通过http下载一般是XMLHttpRequest()。所以突然想看一下瓦片下载流程的时候,就着这个目的地看了一下,还是比较顺利的。因为看的比较快,没有记录太多东西。但是从开始到中间经历的流程(程序调用顺序)还是拿下来了。

Globe.render()会侦测tile是否需要下载。如要下载,会放在QuadtreePrimitive的某个queue(有三个queue)里面。这个tile信息记录了一个tile的足够信息,比如z,x、y,url。

Globe.endFrame()里有QuadtreePrimitive.endFrame(), 有processTileLoadQueue(),会处理到这个queue里面的每个tile。

最后实际处理会是GlobeSurfaceTileProvider.loadTile()发起,经历的路程如下:

GlobeSurfaceTile.doRequest()
   CesiumTerrainProvider.requestTileGeometry
     Resource.fetchArrayBuffer
       Resource.fetch
         Resource._makeRequest
           RequestScheduler.request
             startRequest
               Resource.loadWidthXhr
                 new XMLHttpRequest()

化石原创文章,转载请注明来源并保留原文链接


发表评论

电子邮件地址不会被公开。 必填项已用*标注