如何处理 openlayers tileloaderror 加载资源 404 失败?

Posted

技术标签:

【中文标题】如何处理 openlayers tileloaderror 加载资源 404 失败?【英文标题】:how to handle an openlayers tileloaderror Failed to load resource 404? 【发布时间】:2018-06-29 11:46:39 【问题描述】:

我正在使用 openlayers 4.6.5,并尝试捕捉类似

的错误
function onLoadDie(evt)
    console.log("this tile does not load :", evt);


var source_xyz = new ol.source.XYZ(
                url: f_url,
                minZoom: 15,
            );
source_xyz.addEventListener('tileloaderror', onLoadDie);

404 仍会传播到控制台。这是控制台输出加上来自 Geoserver 的响应,它产生 404。我尝试修复 Geoserver 层也没有运气。

加载资源失败:服务器响应状态为 404(未找到) 覆盖率 [minx,miny,maxx,maxy] 为 [71508, 85624, 71511, 85627, 17],索引 [x,y,z] 为 [71512, 85626, 17]

【问题讨论】:

这也适用于 400 错误请求响应 不要求图层范围之外的图块? 感谢我没有想到的提示。我会试一试,如果可行,我会发布我的代码:) 【参考方案1】:

通过在 openlayers 3.x 4.x 中创建时手动将 extent 属性添加到您的 ol.layer.tile 图层中,extent 属性将不会尝试加载此范围之外的切片,因此会抑制来自 Geoserver 的 400 或 404 响应.在这种情况下,我的数据在 EPSG:3857 中,因此我的范围也是如此。范围定义为[minx, miny, maxx, maxy]

var tmp_lyr = new ol.layer.Tile(

        source: source_xyz,
        extent: [1826159,6142088, 1826967, 6142874],
        visible: is_visible,
        name: name,
        floor_num: floor,
        type: 'floor',
        zIndex: zIndex,
        crossOrigin: "anonymous"
    );

【讨论】:

以上是关于如何处理 openlayers tileloaderror 加载资源 404 失败?的主要内容,如果未能解决你的问题,请参考以下文章

c# FileSystemWatcher如何处理多个文件?

如何处理 MaxUploadSizeExceededException

如何处理 UsernameNotFoundException 春季安全

如何处理c#中的错误代码

Akka 如何处理消息版本?

开玩笑测试 - 如何处理 JsonWebToken 响应