I’d like to know if there’s a way to be notified whenever 3dtiles are loading,
I’ve tried using scene.globe.tileLoadProgressEvent
but that seems to not be related?
More specifically, I’m interested in the xhr requests to the b3dm
files.
Thank you
Maybe you want Cesium3dTileset#readyPromise
or Cesium3dTileset#tileLoad
?
See its doucment here https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileset.html?classFilter=tileset.
correct me if I’m wrong please, but aren’t these events fire only after the tile was loaded?
i.e there’s no way to know if there are more tiles, or if they are currently being loaded.
hence there’s no way to actually know when things are loading
You can make sure with specific vision with tilesLoaded
property. But if you want to know status of all tiles in tileset, I think the anwser is no.
And could you show me more about what you want? That may be helpful.
Ill try to explain:
every time I Pan/Zoom, there is heavy traffic in the network tab. i.e Cesium is requesting more and more tiles.
I want to give the user a visual feedback, so that he knows that loading isn’t done.
Hope this clarifies things
This example basicly finish what you want. Notice that I use a tiny svg icon rahter than a loading element with full screen mask. Becasue that will interupt users when tileLoad
event fired and the loading element may flash sometimes due to a quick load. So I think use a tiny icon like most video games auto-saving style may be better.
2 Likes
Thank you very much, it’s exactly what I needed.
Ill add the relevant code here for future reference:
tileset.tileLoad.addEventListener(() => {
loading.style.display = ''
})
tileset.allTilesLoaded.addEventListener(() => {
loading.style.display = 'none'
})
1 Like
Hi @Nitsan_Baleli and @Gu-Miao. I am happy to see that this was resolved!