在Google地图中设置信息窗口位置

时间:2015-01-21 09:59:09

标签: javascript google-maps

我正在将一组多边形绘制到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,它的效果会很好。

2 个答案:

答案 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”