在jquery移动网络应用中使用google maps v3和markerclusterer,工作正常。我有一个列表视图,我希望在点击时填充群集中所有标记的详细信息,仅当该群集包含25个或更少的标记时,如果有26个或更多标记我希望默认缩放操作。
我已经在markerclusterer.js中找到了onclick事件,我需要在这里放置我的代码......
/**
* Triggers the clusterclick event and zoom's if the option is set.
*
* @param {google.maps.MouseEvent} event The event to propagate
*/
ClusterIcon.prototype.triggerClusterClick = function(event) {
var markerClusterer = this.cluster_.getMarkerClusterer();
// Trigger the clusterclick event.
google.maps.event.trigger(markerClusterer, 'clusterclick', this.cluster_, event);
if (markerClusterer.isZoomOnClick()) {
// Zoom into the cluster.
this.map_.fitBounds(this.cluster_.getBounds());
}
//my code will go here...
//get number of markers in clicked cluster
//if > 25 then zoom as normal
//else get cluster's child markers and loop through to add to listview
};
...但是有一种简单的方法可以访问仅点击群集中包含的标记的数组,假设标记为25或更少,如果不是正常缩放。
我可以处理Listview更新确定,但不知道如何隔离任何给定群集的标记......任何人都可以帮忙吗?哦,我已经在markerclusterer.js中将zoomOnCLick设置为False,但也许我应该将其保持为true并捕获少于26个标记的聚类以更新我的列表视图。
提前致谢。
答案 0 :(得分:0)
我找到了问题的答案....使用增强的markerclustererplus.js,它支持getMarkers()函数,可以使用提供的点击事件返回点击集群的标记数组
还支持getSize()函数,该函数返回被点击的群集中的标记数量,这些标记可以解释我的其他挑战
此处的代码和示例......事件示例在我的案例中有所帮助
https://github.com/googlemaps/v3-utility-library/tree/master/markerclustererplus