2014-11-21 5 views
0

Google지도 api v3의 infoBubble에 문제가 있습니다. db에서 마커를로드하고 해당 마커에 대한 infoBubbles를 추가합니다. 그러나 마지막으로 추가 된 마커에서 infoBubble 만 사용하십시오. 문제를 제발 볼 수 있습니까?Google지도의 여러 정보 풍선 API가 마지막으로 추가 된 것을 보여줍니다.

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

+1

이 사이트에 많은 질문이 있습니다. 검색하십시오. 더 나아가, 하나의'infoWindow' 객체를 생성하고 그 내용을 동적으로 설정하는 방법을 살펴보아야합니다. 그냥 힌트. – MrUpsidown

+0

Oh thx infoBubble을 사용하여 infoWindow에 신경 쓰지 않았습니다. 고마워요 – Kasta

답변

0

내가 그것을 발견, 바로 교체 :

google.maps.event.addListener (마커와 {) (

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

     }); 

을 기능을 '클릭'

google.maps.event.addListener (마커, '클릭', 기능() {

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

     }); 

감사합니다.