2014-11-21 64 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); 

     }); 

谢谢你的帮忙。