Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Markerclusterer-基于它触发特定标记的单击事件';s';id';在连续标记数组中_Javascript_Arrays_Google Maps_Markerclusterer - Fatal编程技术网

Javascript Markerclusterer-基于它触发特定标记的单击事件';s';id';在连续标记数组中

Javascript Markerclusterer-基于它触发特定标记的单击事件';s';id';在连续标记数组中,javascript,arrays,google-maps,markerclusterer,Javascript,Arrays,Google Maps,Markerclusterer,在实现MarkerClusterer之前,我已经能够通过如下方式首先加载标记数组来触发特定标记的单击事件(然后会显示特定于该标记的面板): markers[marker.id] = marker; markers.push(marker); (其中marker.id是从JSON中绘制标记时的属性集,对应于我的数据库中的用户记录) 然后打电话: google.maps.event.trigger(markers[id], 'click'); (其中“id”是我要单击标记的用户id) 现在我想

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

markers[marker.id] = marker;
markers.push(marker);
(其中marker.id是从JSON中绘制标记时的属性集,对应于我的数据库中的用户记录)

然后打电话:

google.maps.event.trigger(markers[id], 'click');
(其中“id”是我要单击标记的用户id)

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

…MarkerClusterer在我加载标记数组时工作,如下所示:

markers[marker.id] = marker;
markers.push(marker);
我假设这是一个连续的数组,没有间隙,MarkerClusterer可以读取。。。但现在我无法通过数组中的索引触发正确标记的单击

因此,似乎我需要一种在基于marker.id的连续标记数组中查找标记的.indexo的方法


任何帮助都将不胜感激。

您至少有两种选择:

  • 遍历标记的“连续”数组,寻找具有正确id的标记(效率低下,需要使用大量标记进行额外处理),然后触发该标记上的单击事件
  • 创建关联数组,并将其用于触发单击事件(效率低下,需要额外的数组内存)

  • 谢谢你。我在想,如果点击一个用户的名字(在我的地图旁边的用户列表中)只是将地图平移到用户的lat/lng(从数据库加载),那里当然会有标记。。。这本身就足够了,但是否有可能以某种方式在地图视图的中心触发单击事件?(击中那里的标记)?有没有什么老套的方法?