2012-09-26 35 views
0

在实施MarkerClusterer之前,我已经能够触发特定标记的点击事件(然后调出特定标记的面板标志物)通过第一装载了标记阵列是这样的:Markerclusterer - 根据连续标记数组中的'id'触发特定标记的点击事件

markers[marker.id] = marker; 

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

然后拨打电话:

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

(其中“ID”是用户的ID我想点击该标记)

现在,我想不过使用MarkerClusterer,也不会集群中使用数组装载方法我在上面使用,我想是因为那么我的标记数组中就会有'间隙',因为我没有为所有用户绘制标记。

... MarkerClusterer工程时,我打开我的标志器阵列像这样:

markers.push(marker); 

我想这给出了一个连续阵列而没有MarkerClusterer可以阅读......但现在我不能触发正确的空白标记点击数组中的索引。

这样看来,我需要找到.indexOf标记基于marker.id的连续标志器阵列中的一种方式......

任何帮助将非常感激。

回答

1

您有至少2种选择:

  1. 迭代通过寻找有正确的ID的一种标志物的“连续”阵列(低效的,需要有大量标记的附加处理),则触发点击事件。
  2. 创建关联数组也用它来触发点击事件(效率低下,需要额外的内存阵列)
+0

感谢。我在想,如果点击用户名(在我地图旁边的用户列表中),只需将地图拖到用户的lat/lng(从数据库加载),那里当然会有标记......这可能已经足够,但是可能有可能以某种方式触发地图视图中心的点击事件? (打那里的标记)?任何hacky的方式来做这个或什么? – christian