0

在实现 MarkerClusterer 之前,我已经能够通过首先加载标记数组来触发特定标记的点击事件(然后会显示一个特定于该标记的面板),如下所示:

markers[marker.id] = marker;

(其中 marker.id 是从 JSON 中绘制标记时设置的属性,对应于我数据库中的用户记录)

然后调用:

google.maps.event.trigger(markers[id], 'click');

(其中 'id' 是我要为其单击标记的用户 ID)

但是现在我想使用 MarkerClusterer,它不会使用我上面使用的数组加载方法进行聚类,我假设因为我的标记数组中存在“间隙”,因为我没有为所有用户绘制标记。

...当我像这样加载我的标记数组时,MarkerClusterer 工作:

markers.push(marker);

我假设这给出了一个连续的数组,没有 MarkerClusterer 可以读取的间隙......但现在我无法通过它在数组中的索引触发正确的标记点击。

所以看来我需要一种在基于marker.id的连续标记数组中找到.indexOf标记的方法......

任何帮助将非常感激。

4

1 回答 1

1

您至少有 2 个选项:

  1. 遍历标记的“连续”数组,寻找具有正确 id 的标记(效率低下,需要对大量标记进行额外处理),然后在其上触发 click 事件。
  2. 还创建您的关联数组,将其用于触发点击事件(效率低下,需要额外数组的内存)
于 2012-09-26T18:09:44.777 回答