Google Maps API v3多边形信息窗口显示错误的内容

时间:2013-01-24 15:49:45

标签: google-maps jquery google-maps-api-3 google-maps-markers

我无法将点击事件监听器绑定到使用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

0 个答案:

没有答案