Skip to content

2. 取得瓦片数据加载状态

loading

瓦片数据量较大,加载时间长,可以通过 TileMap 的事件监听瓦片数据加载状态,显示加载进度,提升用户体验。数据加载相关事件如下:

事件名称参数说明
loading-startitemsLoaded: 加载完成数量
itemsTotal: 加载完成合计
在地图数据开始加载时发生(THREE.LoadingManager 事件的封装)
loading-errorurl: 瓦片 url在地图数据加载错误时发生(THREE.LoadingManager 事件的封装)
loading-complete在地图数据全部加载完成时发生(THREE.LoadingManager 事件的封装)

主要代码如下:

ts
// 显示地图加载进度
function showLoading(map, id) {
    const el = document.querySelector("#loading");
    if (el) {
        map.addEventListener("loading-start", (evt) => {
            el.innerHTML = "Started: " + evt.itemsLoaded + " of " + evt.itemsTotal + " files.";
        });
        map.addEventListener("loading-progress", (evt) => {
            el.innerHTML = "Loading: " + evt.itemsLoaded + " of " + evt.itemsTotal + " files.";
        });
        map.addEventListener("loading-complete", () => {
            el.innerHTML = "Loading complete!";
        });
        map.addEventListener("loading-error", (url) => {
            el.innerHTML = "There was an error loading " + url;
        });
    }
}
showLoading(map);

Released under the MIT License.