2012-04-16 82 views
0

得到這個代碼,只有當警報(markers.length);沒有註釋。奇怪的谷歌地圖V2標記問題

當這個JavaScript警報沒有顯示我沒有得到任何標記..真的很奇怪!

在body標籤我有<body onload="load()" onunload="GUnload()">

Previoslly負載()函數被調用等功能:

  function showAddress(address) { 
      if (geocoder) {//+', '+init_street 
    geocoder.getLatLng(address, 
     function(point) { 
       if (!point) { 
        document.getElementById("place").value="not found"; 
        //alert(address + " not found"); 
       } else { 
       // document.getElementById("place").value=point.y.toFixed(4) + "," + point.x.toFixed(4); 
        map.setCenter(point, 16); 
        marker.setPoint(point); 
        //marker.openInfoWindowHtml(address); 
       } 
      } 
    ); 
} 
      } 

     //from a point returns and address! 
     function showPointAddress(response) { 
    if (!response || response.Status.code != 200) {//not found 
    //alert("Status Code:" + response.Status.code); 
     document.getElementById("place").value="not found"; 
    } 
    else {//found 
     map.setCenter(marker.getPoint(), 16); 
     place = response.Placemark[0]; 
     document.getElementById("place").value=place.address; 
     //document.getElementById("place").value=marker.getPoint().toUrlValue(); 
    } 
     } 


      // Creates a marker at the given point with the given number icon and text 
      function createMarker(p,text) { 
var marker = new GMarker(p); 
if (text!=""){ 
    GEvent.addListener(marker, "click", function() { 
     marker.openInfoWindowHtml(text);}); 
     } 
return marker; 
     } 


      ` var geocoder = null;` 
      ` var map = null;` 


     function load() {//loading the map 
    if (GBrowserIsCompatible()) { 
     map = new GMap2(document.getElementById("map")); 
     map.enableScrollWheelZoom(); 
     geocoder = new GClientGeocoder(); 

     if (init_street!=""){ 
      geocoder.getLatLng(init_street,function(point) {//set center point in map 
       if (point){ 
        map.setCenter(point, zoom); 
        map.addOverlay(createMarker(point,init_street)); 
        map.openInfoWindow(point,init_street); 
       } 
      }); 
     } 

     map.addControl(new GLargeMapControl()); 
     map.setMapType(G_NORMAL_MAP);   
    } 
}` 




function(data, responseCode) { 
    if(responseCode == 200) { 
     var texts = []; 
     var addresses = [];  
     var xml = GXml.parse(data); 
     var markers = xml.documentElement.getElementsByTagName("item"); 
     alert (markers.length); 
     for (var i = 0; i < markers.length; i++) { 
      var address=markers[i].getElementsByTagName('address').item(0).childNodes.item(0).nodeValue; 
      if (address!=null){ 
       //alert (address); 
       var title=markers[i].getElementsByTagName('title').item(0).childNodes.item(0).nodeValue; 
       var link=markers[i].getElementsByTagName('link').item(0).childNodes.item(0).nodeValue; 
       var desc=markers[i].getElementsByTagName('description').item(0).childNodes.item(0).nodeValue; 
       desc=desc.substr(0,220);//limit 
       addresses.push(address); 
       texts.push("<div style='width: 200px'><a target='_blank' href='" +link+"'>"+title+"</a><br />"+desc+"</div>"); 
      }//if 
     }//for 

     for (var i = 0; i < addresses.length; i++) { 
      geocoder.getLatLng(addresses[i], function (current) { 
       return function(point) { 
        if (point) map.addOverlay(createMarker(point,texts[current]));  
       } 
      }(i)); 
     } 

    }//if }); 

我理解需要一個回調函數來加載標記的問題,但是我丟失..

任何幫助apreciated! ;)

Thx in advanced!

+0

我想這是一個'GDownloadUrl'調用。我看不出有什麼理由爲什麼一個簡單地延遲處理結果的警報應該對'GDownloadUrl'有所影響。你有鏈接(最好)?或更多的上下文(不如有用)? – 2012-04-16 12:23:58

+0

對不起,還沒有URL ...是的,GdownloadUrl如下: 'GDownloadUrl(「/ rss /?category = <?php echo $ _GET [」category「];?>&type = <?php echo $ _GET [ 「型」];>」,' Didnt拷貝在第一交... 這將返回:'的GDownloadUrl( 「?/ RSS /類別=住處農村&類型= 1」,' 非常奇怪?。 ..我只需要濺出一個警報和我的標記出現。 – 2012-04-16 14:52:47

回答

0

這通常發生在使用Ajax或類似方法獲取數據時。基本上,當您獲取數據時,您需要使用回調函數來等待數據。如果你不存在沒有數據要執行。但是,如果使用alert()暫停執行,數據將在後臺獲取。

認爲它是在頁面上執行Javascript之前等待DOM加載的。

我不能給你一個更好的答案,因爲你沒有包括調用你包含的函數的代碼。

+0

好吧..有道理......;)我看着這個,如果需要回來!! Thx !! – 2012-04-19 10:11:27

+0

Ive更新了我的帖子與更多信息.. 。如果我得到任何迴應,我會非常感謝... – 2012-04-20 17:12:15

+0

錯過了你的回覆,你還對更多信息感興趣嗎? – Nils 2012-09-01 11:27:24