Diff Infowindows用于多个多边形

时间:2012-10-26 09:27:01

标签: javascript google-maps polygon infowindow

这是我的代码,其中有一个多边形循环用于为它们创建和“点击”事件监听器,将为其显示一个信息窗口。

    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数据。

1 个答案:

答案 0 :(得分:0)

将信息窗与多边形相关联的最简单方法是使用函数闭包。

Example