InfoWindow on Marker using MarkerClusterer

后端 未结 2 506
感动是毒
感动是毒 2021-01-01 03:25

This is my html code. I\'ve try anything to add an infowindow on the markers but it don\'t wanna work. My data is loading from the \"Alle_Ortswahlen.page1.xml\" file. Do an

2条回答
  •  -上瘾入骨i
    2021-01-01 04:03

    So what you need to do is add some code, inside your for-loop, associating an infowindow onclick event handler with each marker. I'm assuming you only want to have 1 infowindow showing at a time, i.e. you click on a marker, the infowindow appears with relevant content. If you then click on another marker, the first infowindow disappears, and a new one reappears attached to the other marker. Rather than having multiple infowindows all visible at the same time.

    GDownloadUrl("Alle_Ortswahlen.page1.xml", function(doc) {
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("ROW");
        // just create one infowindow without any content in it
        var infowindow =  new google.maps.InfoWindow({
            content: ''
        });
        for (var i = 0; i < markers.length; i++) {
          // obtain the attribues of each marker
          var lat = parseFloat(markers[i].getAttribute("Field4"));
          var lng = parseFloat(markers[i].getAttribute("Field6"));
          var marker = new google.maps.Marker({
                position : new google.maps.LatLng(lat, lng),
                map: map,
                title:"This is a marker"
            });     
            // add an event listener for this marker
            google.maps.event.addListener(marker , 'click', function() {
            // assuming you have some content in a field called Field123
                    infowindow.setContent(markers[i].getAttribute("Field123"));
                    infowindow.open(map, this);
            });
          stack.push(marker);
        }
        var mc = new MarkerClusterer(map,stack);
      });
    

提交回复
热议问题