这是我的代码,其中有一个用于创建多边形的循环,并为它们“单击”事件侦听器,其中将显示一个信息窗口。
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);
});
}
}
这里的多边形可以很好地生成,但是在多边形上单击所有多边形时,显示的信息窗口数据是相同的(信息窗口与循环中最后一个多边形信息数据的数据)。这意味着在每个多边形创建的 for 循环中,在事件中添加侦听器 infowindows 数据将覆盖所有多边形 infowindw。
所以,我需要的是每个多边形在信息窗口中显示其数据将“点击”,即每个多边形信息窗口的差异数据。