छवि लोड करने का एक और तरीका है और फिर कुछ पिक्सल रंगों की तुलना करें। Google से "नो स्ट्रीटव्यू" छवि हमेशा एक जैसी होती है।
var url = STREETVIEWURL
var img = new Image();
// Add some info to prevent cross origin tainting
img.src = url + '?' + new Date().getTime();
img.setAttribute('crossOrigin', '');
img.crossOrigin = "Anonymous";
img.onload = function() {
var context = document.createElement('CANVAS').getContext('2d');
context.drawImage(img, 0, 0);
//load 2 pixels. I chose the first one and the 5th row
var data1 = context.getImageData(0, 0, 1, 1).data;
var data2 = context.getImageData(0, 5, 1, 1).data;
console.log(data1);
// google unknown image is this pixel color [228,227,223,255]
if(data1[0]==228 && data1[1]==227 && data1[2]==223 && data1[3]==255 &&
data2[0]==228 && data2[1]==227 && data2[2]==223 && data2[3]==255){
console.log("NO StreetView Available");
}else{
console.log("StreetView is Available");
}
};
कुछ संभावित मुद्दों: आप निम्न तरीके से 2 पिक्सेल तुलना होता है मैं CrossOrigin tainting के साथ कुछ त्रुटियाँ देखा है। साथ ही, अगर Google ने छवि को बदल दिया है तो यह कोड टूट जाएगा।
स्रोत
2016-04-01 15:39:08
यह सुनिश्चित नहीं है कि यह बंद करने के लिए वोट क्यों है क्योंकि यह मुझे एक पूरी तरह से समझदार प्रश्न माना जाता है - यद्यपि पहली झलक दिखने वाला कोई आसान जवाब नहीं है। – Murph