Google Maps infowindows具有相同的内容

时间:2018-05-02 11:07:10

标签: google-maps infowindow

我的问题是所有的infowindows都有相同的内容(最后一个数组对象)。我找到的答案似乎都不适合我。

function addMapMarkers(data) {

removeMarkers();

for(i=0; i<data.length; i++){
 var location = {lat: + data[i].koordinatLatLng[0], lng: + data[i].koordinatLatLng[1]};

 var marker = new google.maps.Marker({
   position: location,
   map: map,
   clickable: true
 });

 marker.info = new google.maps.InfoWindow({
   content: "Navn: " + data[i].navn
 });

 google.maps.event.addListener(marker, 'click', function() {
   marker.info.open(map, this);
 });


 map.markers.push(marker);
 };
};

2 个答案:

答案 0 :(得分:0)

你应该使用一个闭包

  function addMapMarkers(data) {

  var addListenerOnPoint = function(actMark, actNavn){
       $('.gm-style-iw').prev('div').remove();

      var actContent = '<div><strong>' +actNome + 
                      '</strong><br/>' + actDescrizione + '<div>';

      var aInfowindow =  new google.maps.InfoWindow({
        content: "Navn: " + actNavn;
      });

      actMark.addListener('click', function() {
          aInfowindow.open(map, actMark);
      });

  }
  removeMarkers();

  for(i=0; i<data.length; i++){

   var location = {lat: + data[i].koordinatLatLng[0], lng: + data[i].koordinatLatLng[1]};

   var marker = new google.maps.Marker({
     position: location,
     map: map,
     clickable: true
   });

   addListenerOnPoint(marker,data[i].navn);


   map.markers.push(marker);
   };
  };

答案 1 :(得分:0)

或者,如果您不想使用更多闭包,则可以使用let关键字

let marker = new google.maps.Marker({
    position: location,
    map: map,
    clickable: true
})