我无法将点击事件监听器绑定到使用jQuery.getJSON()
提取的Google Maps API v3中的多边形数组。
在点击其中一个多边形之前,一切似乎都能正常工作。 infowindows显示在正确的位置(因此,infoWindow.setPosition(event.latLng)
似乎正常工作),但始终显示数组中最后一个多边形元素的标题和描述(即data[n]
)。
我尝试了这个问题Google Maps - Attaching InfoWindows to polygons in array的解决方案并获得了相同的结果。我的第一个问题是它可能与jQuery.getJSON()
响应的时间有关,但这没有意义,因为所有数据都是在单个请求中返回的。
有什么想法吗?
jQuery.getJSON('http://www.url.com', function(data){
for(var i in data){
var coords = getCoords(data[i]);
var polyOptions = {
path: coords,
title:data[i].name,
desc: data[i].desc,
// more style options, etc etc
map:map
};
// logging polyOptions shows correct title and desc here
var poly = new google.maps.Polygon(polyOptions);
poly.setMap(map);
google.maps.event.addListener(poly, 'click', function(event) {
var infoWindow = new google.maps.InfoWindow();
infoWindow.setContent("Information : " + poly.title);
infoWindow.setPosition(event.latLng);
infoWindow.open(map);
});
}// end for var i in data
}); // end get json for all polygons