在Google Map(任何API版本)上打开/排列所有InfoWindows?

时间:2012-01-11 13:16:13

标签: javascript google-maps google-maps-markers

在业余时间,我帮助一个参与树木种植的社区团体一年几次。我已经创建并打印了我们种植地点的地理编码谷歌地图,这对参与种植的各个团队非常有帮助。

我似乎无法完成的一件事是让地图显示所有信息窗口同时打开。我希望能够在种植地点展示树种,而不是让人们看到标记标签,并在单独的列表中找到它。在大型显示器上,我能够放大到足以使重叠的信息窗不是(巨大的)问题。我没有看到任何迹象表明谷歌有任何代码用于自动安排,但如果有,甚至更好。

我能找到的所有帖子都与infowindows在点击另一个时没有正确关闭,或者每个标记的内容没有正确更新有关,但似乎没有人问过这种类型的使用场景。

非常感谢任何正确方向的想法或指示。

1 个答案:

答案 0 :(得分:1)

假设您使用的是Maps API V3,则可以轻松完成。

通常,当您希望在单击时打开信息窗口时,您可以创建一个事件来处理:

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});

在这种情况下,您还想打开infowindow:

infowindow.open(map,marker);
google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});

在创建每个infowindow和marker之后执行此操作。

为了便于阅读,您可以考虑在标记上使用标签,例如使用MarkerWithLabel实用程序库: http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.5/