我正在将一组多边形绘制到Google地图上,并希望在点击它时在每个中心弹出一个InfoWindow。
function attach_info_window(polygon, centroid, title){
var info_window = new google.maps.InfoWindow({
content: title,
position: { lat: centroid[0], lng: centroid[1] }
});
google.maps.event.addListener(polygon, 'click', function() {
info_window.open(map, this);
});
}
问题是,窗口每次出现在NW角落。 'position'参数似乎完全被忽略了。我还尝试使用
设置位置event.latLng
但是返回undefined,即使API文档指定了它,所以这也不起作用。奇怪的是,如果我使用Marker而不是Polygons,它的效果会很好。
答案 0 :(得分:0)
我通过删除open()
中的第二个参数来解决这个问题info_window.open(map)
效果很好。我传递“this”是为了将它绑定到许多中的特定多边形。我仍然不明白为什么会这样,而且
info_window.open(map, poly)
,也不
info_window.open(map, this)
作品
答案 1 :(得分:0)
此:
info_window.open(map, this);
除了google.maps.Marker之外,什么都行不通。 InfoWindow.open的第二个参数只能是google.maps.Marker,Polygon或Polyline不会在那里工作。
来自documentation的“在核心API中,唯一的锚是Marker类。但是,锚可以是暴露LatLng位置属性的任何MVCObject”