如何在OpenLayers 3中捕获图块加载事件?在OpenLayers 2中,可以通过从地图基层捕获“ loadend”事件来完成此操作:

map.baseLayer.events.register('loadend' , false, function(){  });

最佳答案

自OpenLayers v3.3起,可以在图块源上预订tileloadstarttileloadendtileloaderror事件。

您可以使用类似于以下内容的东西:

var tilesLoading = 0,
    tilesLoaded = 0;

tileLayer.getSource().on('tileloadend', function () {
    tilesLoaded++;
    if (tilesLoading === tilesLoaded) {
        console.log(tilesLoaded + ' tiles finished loading');
        tilesLoading = 0;
        tilesLoaded = 0;
        //trigger another event, do something etc...
    }
});

tileLayer.getSource().on('tileloadstart', function () {
    this.tilesLoading++;
});

09-05 15:02