Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测google地图标记图像加载失败,以提供默认图像?_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 如何检测google地图标记图像加载失败,以提供默认图像?

Javascript 如何检测google地图标记图像加载失败,以提供默认图像?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,按照中的示例代码(为了简洁起见被截断),如何检查未能加载的标记图像并使用其他/默认图像 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 goog

按照中的示例代码(为了简洁起见被截断),如何检查未能加载的标记图像并使用其他/默认图像

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
事件被激发)返回到其他内容(例如没有图像的默认标记):


是的,这应该行得通,不过我希望有一个内置的方法来处理这种情况。想象一个有1000多个标记的地图:现在你需要创建1000多个IMG元素来检查图像URL是否有效。。。
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;