如何处理 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 失败?的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 MaxUploadSizeExceededException