切片图层加载开始和结束时的传单火灾事件

Leaflet fire event when tile layer loading begins and ends

本文关键字:单火灾 火灾 事件 加载 图层 开始 结束 切片      更新时间:2023-09-26

我正在使用 Leaflet.loading 在 Leafletjs 地图上显示加载图标,同时加载 L.TileLayer.WMS 切片图层,这在缩放或平移地图时效果很好。但是,如果用户在不移动地图的情况下打开了 WMS 切片图层,则不会触发加载图标。

传单加载说明指出:

如果要在其他 AJAX 请求或 发生其他情况 [即 WMS 切片图层加载],只需在 开始加载时的映射和完成加载时的数据加载。

如何在开始和完成 WMS 切片图层加载时触发这两个事件?

假设您有以下层实例:

var layerInstance = L.tileLayer(layerUrl, layerOptions).addTo(mapInstance);

您可以捕获加载和加载事件,然后触发相应的映射事件,如下所示:

layerInstance.on('loading', function (event) {
    mapInstance.fireEvent('dataloading', event);
});
layerInstance.on('load', function (event) {
    mapInstance.fireEvent('dataload', event);
});

如果需要在多个层上执行此操作,也可以分离处理程序函数:

var loadingHandler = function (event) {
    mapInstance.fireEvent('dataloading', event);
};
var loadHandler = function (event) {
    mapInstance.fireEvent('dataload', event);
};
layerInstanceFoo.on('loading', loadingHandler);
layerInstanceFoo.on('load', loadHandler);
layerInstanceBar.on('loading', loadingHandler);
layerInstanceBar.on('load', loadHandler);

有关可用的切片图层事件和 fireEvent 方法,请参阅参考