XMLからマーカーをロードしています。私は$(document).ready()
とajaxで地図開始を完了しています。私はこの問題を研究し、ドキュメントの準備が整う前にマップを読み込むことが原因で発生する時間の大部分を見ました。なぜ私はそれを取得していますか?google map main.jsの "a is null"(1121行目)
以下のコードでi console.log()を実行すると完全な配列が返されますが、マップには完全な同じ情報が表示されません。ここ
は私のコードです:
$(document).ready(function(){
var myMarkers = new Array;
$.ajax({
url: "tire-banks.xml",
dataType: ($.browser.msie) ? "text" : "xml",
async: false,
success: function(data){
var xml;
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
// xml.async = false;
xml.loadXML(data);
} else {
xml = data;
}
$(xml).find("location").each(function(){
var locAddress = $(this).find("city").text() + "," + $(this).find("state").text() ;
var cc = $(this).find("cc").text();
var bcc;
if ($(this).find("bcc")){
bcc = $(this).find("bcc").text();
}else{
bcc = " - ";
}
var vendor =$(this).find("vendor").text();
var hours = $(this).find("hours").text();
var HTMLString = "<div><h3>" + locAddress + "</h3>Vendor: " + vendor + "<br />CC#: " + cc + "<br />Bulk CC#: " + bcc + "<br />Hours: " + hours + "</div>" ;
myMarkers.push({ address: locAddress, html: HTMLString});
});
},//END SUCCSESS
error: function(){
},
complete: function(){
console.log(myMarkers);//returns correct information
$("#map").gMap({ markers: myMarkers, address: "United States", zoom: 4 });//incomplete data and generates a is null error in firebug
}
});//END AJAX CALL
});
のsetTimeoutでそれをラップし、それがそのように動作するかどうかを確認する必要があります... :) – Val
はええ、マップを描くの周りに5秒のタイムアウトを追加しましたそれは何もしなかった。しかし、良いアイデア。 –
'myMarkers'については、他のコードを含んでいない限り、グローバル変数ではないようです:)' doc ... ready()... 'の直前/直前に' var myMarkers; – Val