如何检测谷歌地图标记图像加载失败,以提供默认图像代替
How to detect google map marker image failed to load to provide default image instead?
以下是来自Google Maps API的示例代码(为简洁而截断),我如何检查标记图像未能加载并使用不同的/默认图像代替?
var image = {
url: 'https://broken.url.com/no-such-image.png',
size: new google.maps.Size(20, 32),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(0, 32)
};
var marker = new google.maps.Marker({
position: {lat: -33.890542, lng: 151.274856},
map: map,
icon: image,
title: 'Marker demo',
zIndex: 1
});
您可以尝试使用javascript加载图像。如果它可以加载(onload
事件被触发),添加带有图像的标记,否则(onerror
事件被触发)退回到其他东西(例如没有图像的默认标记):
var image = new Image();
var image_url = "https://broken.url.com/no-such-image.png";
image.onload = function () {
console.info("Image loaded, adding marker with image !");
var marker = new google.maps.Marker({
position: {lat: -33.890542, lng: 151.274856},
map: map,
icon: {
url: image_url,
size: new google.maps.Size(20, 32),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(0, 32)
},
title: 'Marker demo',
zIndex: 1
});
}
image.onerror = function () {
console.error("Cannot load image, adding marker without image");
var marker = new google.maps.Marker({
position: {lat: -33.890542, lng: 151.274856},
map: map,
title: 'Marker demo',
zIndex: 1
});
}
image.src = image_url;
相关文章:
- 在 Internet Explorer 9 和 Opera 下在画布中加载图像失败
- 最简单的图像旋转器 - 使用设置间隔失败
- 图像上传失败(getFileDetails不是一个函数)在Angularjs中
- j查询背景图像 URL 失败
- 画布到图像执行失败'toDataURL'在'HTMLCanvasElement':受污染
- 在JavaScript中加载图像失败时进行检测
- 检查Javascript中图像和视频加载失败的正确方法
- 画布图像绘制失败
- JS图像上传失败OSX Localhost
- 来自跨域的图像在HTML中显示良好,但ajax从浏览器控制台调用相同的图像失败
- 如何检测图像加载失败,如果失败,尝试重新加载直到成功
- JavaScript:失败的图像请求是否有error属性
- 当服务器发送HTML而不是图像数据时,是否有可能捕获失败的IMG加载?
- 设置& lt; img>用Javascript转换base64编码的图像失败
- ajax调用后图像加载失败
- 使用Jquery向图像添加onClick失败
- fs.大量图像复制失败,少量图像复制有效
- Jquery Fancybox显示图像失败
- 通过toDataURL将画布保存到图像失败
- 从数据库检索后解码base64图像失败