google-maps - 显示所有打开的信息窗口

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

我试图让自定义信息窗口 float 在标记上方,但我注意到任何时候只能打开一个标记。有解决办法吗?

这是我目前生成的代码:

downloadUrl("AllActivityxml.php", function(data) {
    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute("id");
        var address = markers[i].getAttribute("id");
        var type = markers[i].getAttribute("venue_type");
        var point = new google.maps.LatLng(
            parseFloat(markers[i].getAttribute("lat")),
            parseFloat(markers[i].getAttribute("lng"))
        );

        var infowindow = new google.maps.InfoWindow();
        var html = "<b>" + point + "</b>hello <br/>" + type;
        var icon = customIcons[type] || {};
        var marker = new google.maps.Marker({
            map: map,
            position: point,
            icon: icon.icon,
            shadow: icon.shadow,
            zIndex: Math.round(latlng.lat()*-100000)<<5
        });

        markersArray.push(marker);
        bindInfoWindow(marker, map, infoWindow, html);        


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

当你检查this map时,请注意,我无法同时打开 2 个以上的信息窗口。这是为什么?

最佳答案

Google Maps API v3 没有隐式限制,一次只能使用一个 InfowWindow。您需要编写代码来做到这一点。如果您想要每个标记都有一个信息窗口,请创建一个。

类似的东西(未测试):

function createMarker(latlng, html) {
   var contentString = html;
    var infowindow = new google.maps.InfoWindow();
    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        zIndex: Math.round(latlng.lat()*-100000)<<5
        });

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

关于google-maps - 显示所有打开的信息窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824077/

相关文章:

javascript - 从中心和缩放计算边界(Google Maps API v3)

swift - 如何避免重写父类(super class)初始值设定项

javascript - 将HTML类/ID添加到Google Maps Marker(API V3)

Jquery 和 Google map : Cannot display more than 11 markers

javascript - 完整地址解析为谷歌地图

javascript - 在 Google Maps api v3 中制作可拖动部分

google-maps - Leafletjs map - map.invalidateSize 不起作用

android - Ekito 简单 KML 阅读源

javascript - 谷歌地图中的过滤器不起作用(JS)

javascript - Google map API - 缩小时默认标记不准确