这是我的代码,其中有一个多边形循环用于为它们创建和“点击”事件监听器,将为其显示一个信息窗口。
var GoogleMap,polyInfoWindow,polygon,getPath,getInfo;
function PolygonToMap()
{
GoogleMap = // map initialization //;
polyInfoWindow= // Infowindow initialization for polygons //;
// for loop of number polygons top create
{
getPath= // get path for new polygon // ;
polygon = new google.maps.Polygon({
paths: getPath,
strokeColor: "#0071bc",
strokeOpacity: 1,
strokeWeight: 2,
fillColor: "#000000",
fillOpacity: 0.1,
map:GoogleMap
});
getInfo= // get new data for new polygon // ;
google.maps.event.addListener(polygon,"click",function(event){
polyInfoWindow.setContent(getInfo);
polyInfoWindow.open(GoogleMap);
polyInfoWindow.setPosition(event.latLng);
});
}
}
这里多边形是精细生成的,但是在所有多边形的多边形点击上,显示的infowindow数据是相同的(infowindow包含循环中最后一个多边形信息数据的数据)。 这意味着在for循环中为每个多边形创建,在事件添加侦听器infowindows数据覆盖所有多边形infowindw。
所以,我需要的是每个多边形它在infowindow中显示它的数据'onclick',即每个多边形infowindow的diff数据。