问题
As continuation to this question, i trying to add the respective json object name to infowindow content as,
var infowindow = new google.maps.InfoWindow({
content:i
});
Which is given in this fiddle but it displays only the name of last object. I also tried with return function as
google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) {
return function() {
infowindow.open(map);
infowindow.setPosition(event.latLng);
}
})(poly, i));
but no use (fiddle). How can I achieve it?
回答1:
You said "But all brackets are correctly closed.". This is not correct (you have an extra set of parentheses in the function definition):
google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) {
return function() {
infowindow.open(map);
infowindow.setPosition(event.latLng);
}
})(poly, i));
The event argument belongs to the returned function, and you only need closure on the polygon (poly) and the loop index (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
来源:https://stackoverflow.com/questions/31078209/google-map-polyline-infowindow