【问题标题】:Diff Infowindows for multiple polygons多个多边形的差异信息窗口
【发布时间】:2012-10-16 13:28:18
【问题描述】:

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

    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。

所以,我需要的是每个多边形在信息窗口中显示其数据将“点击”,即每个多边形信息窗口的差异数据。

【问题讨论】:

  • 你贴的代码不完整,没有多大意义。

标签: javascript google-maps polygon infowindow


【解决方案1】:

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

Example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-14
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    相关资源
    最近更新 更多