2017-04-19 88 views
1

我正在使用Mapbox GL JS API來操作Mapbox地圖。就在我通過HTTP將我的結果(這是一個canvas.toDataURL)上傳到服務器之前,我需要調整我的地圖(更大的分辨率),然後使用fitbounds返回原始點。在合適的邊界觸發後,它需要一段時間才能加載所有新的圖塊。只有在這之後,我才能真正執行上傳。但現在,我不知道是否有事件能夠告訴我是否所有的瓷磚都已加載。所有瓷磚加載時的MapBox事件

我已經嘗試了API中的所有可能的加載函數和事件。 GITHUB項目存在一些問題,但現在至少已有一年的歷史,並且沒有更新。到2015年的中途,他們開始討論添加閒置事件,但我似乎無法在任何地方找到任何新文檔。

有沒有人找到一種方法讓代碼等待地圖加載?或者有關於此功能更新的任何信息?

我懷疑這很重要,但我正在angular.js應用程序中工作。

回答

3

我們剛剛添加了一個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'); 
    } 
});