如何在Google maps API v3中的标记集群对象中查找单个集群中的标记

how to find the markers in the individual clusters in a marker cluster object in google maps api v3?

本文关键字:对象 查找 单个集 Google v3 maps API      更新时间:2023-09-26

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

我想添加标记的信息(例如,当单击markkercluster对象时,在信息窗口中显示的列表中的"标题")包含在各自的集群中。

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

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

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

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

不幸的是,MarkerClusterer引用有点不足。在浏览源代码之后,看起来您需要调用传入的cluster对象的getMarkers方法(与我之前建议的相反,我建议在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);
});

EDIT:回复问题编辑。