有没有一种方法可以将infoWindow添加到google.maps.Circle创建的圆中
像这样的东西
var circ = new google.maps.Circle({
center:latlng,
clickable:false,
fillColor:colors[count],
fillOpacity:0.3,
map:map,
radius:radius,
strokeColor:colors[count],
strokeOpacity:0.3});
和
//create info window
var infoWindow= new google.maps.InfoWindow({
content: "Your info here"
});
//add a click event to the circle
google.maps.event.addListener(circ, 'click', function(){
//call the infoWindow
infoWindow.open(map, circ);
});
或者有一种方法可以在圆的中心创建一个不可见的标记,可以单击该标记以访问infoWindow
最佳答案
您可以为自己的圈子叠加显示信息窗口。但是您必须稍微调整代码。
首先,必须为您的“圈子”叠加层设置clickable=true
(否则将不处理圈子上的点击事件)。
然后,您必须更改点击侦听器的代码。将circle用作函数open()的参数无效(Circle不是MVCObject的正确种类,有关解释,请阅读InfoWindow .open()函数的文档)。要显示信息窗口,您必须提供其位置-例如点击事件的位置,圆心....
然后是代码
google.maps.event.addListener(circ, 'click', function(ev){
infoWindow.setPosition(ev.latLng);
infoWindow.open(map);
});
要么
google.maps.event.addListener(circ, 'click', function(ev){
infoWindow.setPosition(circ.getCenter());
infoWindow.open(map);
});
回答您的评论:
您可以创建带有不可见标记的技巧(只需将完全透明的图像作为标记图标放置),但是我更喜欢使用Circle覆盖的解决方案。
关于google-maps-api-3 - 谷歌 map v3向圈子添加信息窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6584358/