2012-04-03 111 views
1

我不能当我选择一个多边形打开信息窗口。这是我的代码:调用信息窗口瓦特/谷歌地图API V3

// Create Polygon 
var polyline = new google.maps.Polygon({path:path, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2, clickable:false}); 

// Place Polygon on Map 
polyline.setMap(map); 
map.setCenter(new google.maps.LatLng(35.910200,-84.085100)); 

// Create InfoWindow object 
var infowindow = new google.maps.InfoWindow({ 
content: ' ', 
suppressMapPan:true 
}); 

// Create Click Event for Polygon 
eventPolygonClick = google.maps.event.addListener(polyline, 'click', function() { 

    // Load Content 
    infowindow.setContent("CLICKED me"); 
    // Open Window 
    infowindow.open(map, polyline); 

}); 

我想也将多边形及其各自的内容作为变量传递给eventPolygonClick。这可能吗?

回答

3

试试这个,使用来自click事件接收到的经纬度信息,以创建一个标记,并用它作为infowindow.open调用的第二个参数。

eventPolygonClick = google.maps.event.addListener(polyline, 'click', function(event) { 
    var marker = new google.maps.Marker({ 
     position: event.latLng 
    }); 

    infowindow.setContent("CLICKED me"); 
    infowindow.open(map, marker); 

}); 
+0

这是正确的答案。回复:Heitor的答案:一个Click事件可以绑定到折线和事件传递将是一个点沿折线地方。无需添加隐藏标记。您也可以使用折线的内容,但我不确定这意味着什么。 – 2012-04-04 02:22:51

+0

谢谢@javram。我还没有成功。你可以在http://cspc.net/neighborhoods/neighborhoods2.html浏览我的代码。我已经按照上面的说明实施了..但是当我点击时没有任何反应,也没有发布错误。 – mcmonty 2012-04-18 14:14:47

+0

看起来您将多段线设置为可点击:false。尝试从多段线选项中完全删除可点击的属性,你应该很好的去追求。 – javram 2012-04-18 16:13:45

0

据我曾尝试,多边形不能被用作一个信息窗口的锚。尝试在多边形内部或边缘的某处添加标记,setVisible(false),然后infowindow.open(地图,标记)

当你说通过多边形时,我不太清楚。我相信你可以自由地使用你的变量'折线',至于通过函数(事件)传递,可能不会。你有没有尝试过任一选项?