2016-08-29 4 views
0

Google Maps API(簡略化のために切り捨てられています)のサンプルコードに続いて、マーカイメージの読み込みに失敗し、代わりに別の/デフォルトイメージを使用する方法を確認できますか?Googleマップマーカー画像を検出する方法は、代わりにデフォルト画像を提供するために読み込まれませんでしたか?

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 
}); 

答えて

2

画像を読み込むためにjavascriptを使用できます。ただし、動作するはず

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; 
+0

はい、:それは(onloadイベントが発生した)ロードすることができた場合は、(onerrorイベントが発生した)他の何か(画像なし例えば、デフォルトのマーカー)にフォールバックそれ以外の場合は、画像とのマーカーを追加私は、このような場合に対処するための組み込みメソッドを望んでいました。 1000以上のマーカーを持つ地図を想像してみましょう:画像URLが有効かどうかを確認するために1000以上のIMG要素を作成する必要があります... – begie

関連する問題