2014-11-21 66 views
0

我在google maps api v3中有infoBubble問題。我從db加載標記併爲該標記添加infoBubbles。但只是從最後添加的標記開始工作。你能看到這個問題嗎?在google maps api中顯示多個infoBubbles僅顯示最後一個

var gmarkers = []; 
var map; 

function load() { 

    var defaultLocation = new google.maps.LatLng(49.8248188, 15.4684482); 

    var map = new google.maps.Map(document.getElementById("map"), { 
     center: defaultLocation, 
     zoom: 8, 
     mapTypeId: 'roadmap' 
    }); 

    downloadUrl("generatexml.php", function (data) { 
     var xml = data.responseXML; 
     var markers = xml.documentElement.getElementsByTagName("marker"); 
     for (var i = 0; i < markers.length; i++) { 
      var id = markers[i].getAttribute("id"); 
      var name = markers[i].getAttribute("name"); 
      var point = new google.maps.LatLng(
      parseFloat(markers[i].getAttribute("lat")), 
      parseFloat(markers[i].getAttribute("lng"))); 
      var marker = new google.maps.Marker({ 
       map: map, 
       position: point 
      }); 

      var infoBubble = new InfoBubble({ 
       content: '<div' + name + '</div', 
       boxClass: 'info-box', 
       alignBottom: true, 
       pixelOffset: new google.maps.Size(-150, -40), 
       maxWidth: 300, 
       disableAutoPan: false, 
       hideCloseButton: false, 
      }); 

      google.maps.event.addListener(marker, 'click', function() { 
       infoBubble.open(map, marker); 
       console.log(infoBubble.content); 
      }); 

      gmarkers.push(marker); 

     } 
    }); 
} 
+1

這看起來像一個封閉的問題 - 結帳這個答案http://stackoverflow.com/a/7054057/1370442 – bUKaneer 2014-11-21 16:21:21

+1

在這個網站上的許多相同的問題。請搜索。除此之外,您應該查看創建一個'infoWindow'對象並動態設置其內容。只是一個提示。 – MrUpsidown 2014-11-21 16:42:41

+0

Oh thx我用了infoBubble,所以我不在乎infoWindow。謝謝 – Kasta 2014-11-21 16:44:09

回答

0

我發現它時,只需更換:

google.maps.event.addListener(標記, '點擊',函數(){

  infoBubble.open(map, marker); 
      console.log(infoBubble.content); 

     }); 

有:

google.maps.event.addListener(marker,'click',function(){

    infoBubble.setContent(this.content); 
        infoBubble.open(map, this); 

     }); 

謝謝你的幫忙。