静的な Google マップを含むページを作成しようとしています。ページのサイズが変更されると、マップが動的に変更されます。ページのサイズ変更時に、ページ上の要素のサイズが一致することを定期的にチェックした後に起動される関数に次のコードがあります。
if (imageDownloadEnabled) {
url = 'http://maps.googleapis.com/maps/api/staticmap?center=' + userLat + ',' + userLng + '&zoom=14&size=' + ((theWidth/2)|0) + 'x'+ ((theHeight/2)|0) + '&sensor=false&scale=2';
newImage = $('<img />');
console.log('Retrieving map from ' + url);
newImage.error( function() {
console.log("error loading image");
imageDownloadEnabled = false;
}).load(function(eventObject) {
console.log("done loading image");
console.dir(eventObject);
$('#maps-image').replaceWith(newImage);
newImage.attr('id', 'maps-image');
}).attr('src', url);
/**/
} else {
console.log('disabled');
}
Google マップ API がオーバーロードすると (私のバグが原因で無限ループが発生したため)、403 エラーと代替画像が表示されます。ただし、エラー イベント ハンドラは呼び出されません。
これを回避する方法はありますか?403 が発生した場合に、ページが Google からの新しい画像のリクエストを停止することを確認したいと思います。