最近在做一个cesium不同层级显示省市区等地名的功能,不同层级的地名加载的时候总会重复加载或者显示层级不对。
首先添加监听时刻获取当前层级瓦片:
viewer.scene.postRender.addEventListener(sss => {
let tilesToRender = (viewer.scene.globe as any)._surface._tilesToRender;
返回的tilesToRender的数据格式
基于cesium瓦片加载的特点可能出现这种情况:
可以看到两边的瓦片层级比中间的瓦片层级高,因功能需要,要把当前的瓦片转换为同一层级才能获得理想的地名显示效果,当前瓦片更低的层级在瓦片对象QuadtreeTile的children属性里面。
写一个递归,全都转换为最低层级
//全部转换为最低层级的瓦片
convertTo