如何在google maps api v3中的标记簇对象中找到各个簇中的标记?

时间:2011-09-01 14:15:01

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

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

我想在各自的群集中添加标记的信息(例如,将它们的'标题添加到单击标记集群对象时在信息窗口中显示的列表。)。

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

例如我在群集中有3个标记 那么如何在信息窗口中显示这个? titlemarker1 titlemarker2 titlemarker3

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

我想要的是例如从标记为18的群集中的总标记中仅获得18个标记的列表,首先从左侧开始。

1 个答案:

答案 0 :(得分:11)

不幸的是,MarkerClusterer参考有点不足。浏览the source code后,您似乎需要调用传入的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);

});

编辑:更新以回复问题编辑。