2017-01-25 8 views
2

アクションを実行するためにソースが完全にロードされている瞬間を取得しようとしています。
私はMap#dataloadingを使用しており、isSourceLoadedが本当になるまで待っていますが、これは起こりません。MapboxGL dataloadingイベントはプロパティisSourceLoadedをtrueに変更しません

私はこのようなリスナーを使用しています

:私はあなたがdataイベントを聴くべきだと思う、とないdataloadingイベント、それでもバグがあり

map.on('dataloading', e => { 
    if (e.dataType === 'source') { 
    console.log(e) 
    } 
}) 

and the result

答えて

2

ここで追跡されているisSourceLoadedの実装https://github.com/mapbox/mapbox-gl-js/issues/3958。その間、回避策は、dataイベントが発生したときにmap.style.sourceCaches["composite"].loaded()をチェックすることです。

希望すると便利です。

免責事項 - 私は、@mollymerpこんにちはMapbox

+0

であなたの助けに感謝を働きます。 最後に、map.loaded()を呼び出すマップの状態をチェックして管理しましたが、すべてのソースをロードしていて、trueを返すときにアプリケーションの状態を更新していました。 – thiagoxvo

+0

あなたはこれをどのようにしたかの例を挙げることができますか?ズームとパンの後に、すべての機能がレンダリングされていることを確認する方法を見つける必要があります。 – malcolm

+0

こんにちは@malcolm、私の文脈はMapboxGLを使ったReactアプリケーションです。すべてのソースが読み込まれ、この[リンク](https://gist.github.com/thiagoxvo/21fd8503e868745bf028ab48a346e7f5)に投稿されているかどうかを確認しているコードを抽出しました。私はそれが助けて欲しい – thiagoxvo

関連する問題