javascript - 瓦片层加载开始和结束时的传单触发事件

标签 javascript leaflet

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

Leaflet.loading 指令状态:

If you want to show the loading indicator while other AJAX requests or something else [i.e. a WMS tile layer load] is occurring, simply fire the dataloading event on your map when you begin loading and dataload when you are finished loading.



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

最佳答案

假设您有以下图层实例:

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

您可以捕获加载和加载事件,然后触发适当的 map 事件,如下所示:
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);

请参阅可用的引用资料 tilelayer eventsfireEvent method

关于javascript - 瓦片层加载开始和结束时的传单触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27378572/

相关文章:

r - 无法使用 addLegend(labels) 在 R 中的传单中添加分类图例

javascript - 传单在缩放级别计算每像素米数

javascript - 有没有办法在传单多边形、多边形中创建两种颜色的边框?

javascript - Mapbox/Leaflet .bottom 控件在 map 上方呈现并且看不见

javascript - OAuth 完整的 Javascript 访问权限,安全问题?

javascript - 同一域,不同子域上的跨站点脚本

javascript - jQuery 自动完成建议列表不会在悬停时更改背景颜色

javascript - React-Leaflet - 自定义 Pin,OnClick 链接到另一个页面

Javascript 正则表达式将文本字段限制为仅数字(必须允许不可打印的键)

javascript - 我们如何从网页按钮点击事件导航到 Activity ?