4

我按照这里的教程在任何缩放级别向标记集群的各个集群添加了一个信息窗口。 http://krisarnold.com/2010/10/15/adding-info-windows-to-map-clusters-with-google-maps-api-v3/

我想添加标记的信息(例如,当单击markercluster 对象时,将它们的“标题”添加到信息窗口中显示的列表中。)包含在相应的集群中。

因此,如果我在特定的缩放级别上有 3 个集群,每个集群内部都有 5 个标记。如何显示该特定集群中聚合的 5 个(markercluster 对象中总共 15 个标记中的)标记的标题列表?

例如,我在一个集群中有 3 个标记,那么如何在信息窗口中显示它?标题标记1 标题标记2 标题标记3

编辑:在这里看到 http://www.blogwave.de/wp-content/uploads/2009/05/marker_cluster.png 所有不同的集群都是一个markercluster对象的实例。因此,如果我们使用以下答案之一中提到的 markercluster 对象的 getmarkers 例程,那么我们将获得所有标记的列表。

我想要的是例如从标有 18 的集群中的总标记中获取仅包含这 18 个标记的列表,从左开始。

4

1 回答 1

13

不幸的是,MarkerClusterer 参考有点少。浏览源码后,看起来需要调用传入getMarkers的对象的方法cluster(与我之前建议的相反,是调用 上的方法markerClusterer)。

例如,使用您链接到的教程:

google.maps.event.addListener(markerClusterer, 'clusterclick', function(cluster) {
    var content = '';

    // Convert lat/long from cluster object to a usable MVCObject
    var info = new google.maps.MVCObject;
    info.set('position', cluster.center_);

    //----
    //Get markers
    var markers = cluster.getMarkers();

    var titles = "";
    //Get all the titles
    for(var i = 0; i < markers.length; i++) {
        titles += markers[i].getTitle() + "\n";
    }
    //----


    var infowindow = new google.maps.InfoWindow();
    infowindow.close();
    infowindow.setContent(titles); //set infowindow content to titles
    infowindow.open(map, info);

});

编辑:针对问题编辑进行了更新。

于 2011-09-05T16:28:01.973 回答