google 地图折线信息窗口

google map polyline infowindow

作为 的延续,我尝试将相应的 json 对象名称添加到信息窗口内容中,

 var infowindow = new google.maps.InfoWindow({
  content:i
  });

this fiddle 中给出,但它只显示最后一个对象的名称。我还尝试使用 return 函数作为

google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) {
    return function() {
  infowindow.open(map);
  infowindow.setPosition(event.latLng);
    }
  })(poly, i)); 

但没有用 (fiddle)。我怎样才能实现它?

你说的是"But all brackets are correctly closed."。这是不正确的(函数定义中有一组额外的括号):

google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) {
    return function() {
      infowindow.open(map);
      infowindow.setPosition(event.latLng);
    }
  })(poly, i)); 

event参数属于返回函数,只需要对多边形(poly)和循环索引(i)进行闭包:

google.maps.event.addListener(poly, 'click', (function (poly, i) {
    return function (event) {
        infowindow.setContent(""+i);
        infowindow.setPosition(event.latLng);
        infowindow.open(map);
    };
})(poly, i));

updated fiddle