使用OpenLayers,是否可以通过“loadend”事件轻松判断地图图像是否已正确加载?
我们正在从GeoServer中读取地图图块,并使用OpenLayers来显示它们。大多数情况下,图像会在合理的时间内显示。偶尔(特别是使用鼠标滚轮来回滚动时),“loadend”事件会被激活,就像图像已加载一样,但没有显示任何内容。
当我研究HTML时,似乎图像具有正确的URL,但背景颜色为粉红色(通常是透明的),我在事件对象中看不到任何有用的东西。
有什么想法吗?
答案 0 :(得分:8)
GeoServer很可能不时无法生成切片。可能会有一些调整来改善性能,所以我可能会投入一些时间来研究它。
从OpenLayers的角度来看,您可以做一些可能有用的简单事项。首先,有一个名为OpenLayers.IMAGE_RELOAD_ATTEMPTS
的属性告诉图层如果无法获取图像,将重试多少次。该值默认为0(零)。我会尝试将其设置为代码顶部的3,看看是否有帮助。
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
此外,如果您收到损坏的图块并希望它显示为粉红色以外的其他内容,则可以更新代码顶部的OpenLayers.Util.onImageLoadErrorColor
值。
OpenLayers.Util.onImageLoadErrorColor = 'transparent';
您可以在此处浏览所有内容的来源:http://trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Util.js
答案 1 :(得分:2)
使用OpenLayers 2.12所需的css是
.olImageLoadError
{
display: none !important;
}
答案 2 :(得分:1)
如果出现错误,则HTML中应包含以下CSS类:
olImageLoadError
如果要隐藏它,请将以下内容添加到样式表中:
.olImageLoadError {
display: none;
}