加载所有Tiles时的MapBox事件

Ren*_*ear 2 javascript jquery angularjs mapbox mapbox-gl-js

我正在使用Mapbox GL JS API来操作Mapbox地图.在我通过HTTP将结果(这是一个canvas.toDataURL)上传到服务器之前,我需要调整我的地图(更大的分辨率),然后使用fitbounds返回到原始点.在适合边界触发后,它会花费一段时间来加载所有新的图块.只有在此之后才可以实际执行上传.但是现在,我不知道是否有一个事件可以告诉我是否所有瓷砖都已加载.

我已经尝试了API中所有可能的加载函数和事件.GITHUB项目有一些问题,但它们现在至少已有一年的历史了,并且没有更新.在2015年中期,他们开始谈论添加空闲事件,但我似乎无法在任何地方找到任何新的文档.

有没有人找到一种方法让代码等待地图加载?或者有关于此功能更新的任何信息?

我怀疑它很重要,但我正在使用angular.js应用程序.

mol*_*erp 6

我们刚刚添加了Map#areTilesLoaded一张听起来像你正在寻找的支票.这应该在下一个版本中发布(v0.37.0).与此同时,以下内容应该有效.

map.on('sourcedata', (e)=> {
    if (map.loaded()) {
     // all tiles are loaded 

     // turn off sourcedata listener if its no longer needed
     map.off('sourcedata');
    }
});
Run Code Online (Sandbox Code Playgroud)