使用OpenLayers判断地图图块图像是否已成功加载的方法

zod*_*zod 2 javascript map openlayers

使用OpenLayers,是否可以通过"loadend"事件轻松判断地图图像是否已正确加载?

我们正在从GeoServer中读取地图图块,并使用OpenLayers来显示它们.大多数情况下,图像会在合理的时间内显示.偶尔(特别是使用鼠标滚轮来回滚动时),"loadend"事件会被激活,就好像图像已加载一样,但没有显示任何内容.

当我调查HTML时,似乎图像具有正确的URL,但背景颜色为粉红色(通常是透明的),我在事件对象中看不到任何有用的东西.

有任何想法吗?

ato*_*gle 8

很可能GeoServer不时无法生成切片.你可以做些调整来提高性能,所以我可能会花一些时间来研究它.

从OpenLayers的角度来看,您可以做一些可能有用的简单事情.首先,有一个调用的属性OpenLayers.IMAGE_RELOAD_ATTEMPTS告诉图层如果无法获取图像,将重试多少次.该值默认为0(零).我会尝试在代码顶部将其设置为3,看看是否有帮助.

OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
Run Code Online (Sandbox Code Playgroud)

此外,如果您获得了损坏的磁贴并希望它显示为粉红色以外的其他内容,则可以更新OpenLayers.Util.onImageLoadErrorColor代码顶部的值.

OpenLayers.Util.onImageLoadErrorColor = 'transparent';
Run Code Online (Sandbox Code Playgroud)

您可以在此处浏览所有这些内容的来源:http://trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Util.js