Google Map V3 - 一次只允许显示一个信息框

时间:2012-06-06 04:23:13

标签: google-maps google-maps-api-3

我正在从infoWindow转到infoBox以获得更好看的信息窗口。

我在地图上有很多标记。我想要做的是当一个infoBox已经打开时,如果用户点击其他标记,当前infoBox将自动关闭,新的infoBox将会打开,这样用户就不会需要关闭当前infoBox,并且一次只能显示一个infoBox

这是我当前解决方案的演示和代码 http://jsfiddle.net/neo3000ultra/9jhAy/

提前致谢!

2 个答案:

答案 0 :(得分:10)

更改此部分:

        google.maps.event.addListener(marker, "click", function (e) {
            ib.open(map, this);
        });

        var ib = new InfoBox(myOptions);

       google.maps.event.addListener(marker2, "click", function (e) {
            ib2.open(map, this);
        });

        var ib2 = new InfoBox(myOptions2);

以下内容:

    var ib = new InfoBox();

    google.maps.event.addListener(marker, "click", function (e) {
        ib.close();
        ib.setOptions(myOptions)
        ib.open(map, this);
    });

   google.maps.event.addListener(marker2, "click", function (e) {
        ib.close();
        ib.setOptions(myOptions2)
        ib.open(map, this);
    });

适用于我,也适用于IE9:http://jsfiddle.net/doktormolle/9jhAy/1/

注意在打开infoBox之前使用ib.close()似乎是一招。

答案 1 :(得分:3)

单个信息窗口的通常建议是只创建一个,然后将其重用于所有标记(更改其内容)。

以下是使用v3 API执行此操作的示例(我将其视为“v2 infowindow行为”,因为v2 API仅允许单个infowindow) http://www.geocodezip.com/v3_markers_normal_colored_infowindows.html

这是另一个基于Mike Williams的v2教程的例子: http://www.geocodezip.com/v3_MW_example_map1.html

并修改了您的示例: http://jsfiddle.net/uGnQb/6/