openlayers - 如何处理 openlayers tileloaderror 加载资源 404 失败?
问题描述
我正在使用 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 仍然传播到控制台。这是控制台输出加上生成 404 的 Geoserver 的响应。我尝试修复 Geoserver 层也没有运气。
加载资源失败:服务器响应状态为 404(未找到)覆盖范围 [minx,miny,maxx,maxy] 为 [71508, 85624, 71511, 85627, 17],索引 [x,y,z] 为 [ 71512、85626、17]
解决方案
通过在 openlayers 3.x 4.x 中创建时手动将范围属性添加到您的 ol.layer.tile 图层,范围属性将不会尝试加载此范围之外的切片,因此会抑制来自 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"
});
推荐阅读
- javascript - 反应对象的本机 setState/useState
- flutter - 当 resizeToAvoidBottomPadding 为真时,在键盘上方颤动黑色空间
- user-interface - DOM 有多少种类型?
- informatica - 信息技术 | 使用两个主键更新表
- json - 如何在没有 Json parseerror 的情况下从 Model 到 ViewModel 获取数组的某些属性(Asp.Net Core MVC)
- react-native - 来自 CSS 代码的 React Native 自定义加载器动画
- javascript - 学习使用 JS 从表单中提取数据
- c# - Form1 应该关闭,Form3 应该打开,但两者都打开
- c# - 如何在 wpf 中通过 Microsoft.Extensions.Hosting 执行依赖注入
- r - 在ggplot2(R)中使用coord_polar()时在任意两点之间绘制直线