events - examples - openlayers osm example
Evento OpenLayers 3 catch tiles cargado (2)
¿Cómo puedo ver el evento cargado de mosaicos en OpenLayers 3? En OpenLayers 2 esto podría hacerse capturando el evento "loadend" de la capa base del mapa:
map.baseLayer.events.register(''loadend'' , false, function(){ });
Puede conectar esto de la siguiente manera a partir de ahora, hasta que se agregue algo al núcleo.
tileSource.setTileLoadFunction(( function(){
var numLoadingTiles = 0;
var tileLoadFn = tileSource.getTileLoadFunction();
return (tile, src) => {
console.log(src);
if (numLoadingTiles === 0) {
console.log(''loading'');
}
++numLoadingTiles;
var image = tile.getImage();
image.onload = image.onerror = function(){
--numLoadingTiles;
if (numLoadingTiles === 0) {
console.log(''idle'');
}
};
tileLoadFn(tile, src);
};
})());
Puede ver todas las clases de origen de mosaico que se pueden usar aquí: http://openlayers.org/en/v3.4.0/apidoc/ol.source.TileImage.html?unstable=true#setTileLoadFunction
tileloadstart
, tileloadend
y tileloaderror
se pueden suscribir a orígenes de teselas desde OpenLayers v3.3.
Puede usar algo similar a lo siguiente:
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++;
});