2016-11-27 37 views
0

在jquery移动web应用程序中使用带有markerclusterer的google maps v3,工作正常。如果有26个或更多的标记,我希望默认的缩放操作,我有一个listview,我想填充群集中所有标记点击时的细节,只要该群集包含25个或更少的标记。markerclusterer点击群集以获取子标记

我在哪里,我需要把我的代码,在这里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

我找到了我的问题的答案....使用增强的markerclustererplus.js,它支持getMarkers()函数,该函数可用于使用提供的单击事件返回点击的群集的标记数组

还存在对返回占我的其他挑战

代码和这里的例子...的事件例如在我的情况下

帮助点击集群内的标记的数量的getSize()函数支持

https://github.com/googlemaps/v3-utility-library/tree/master/markerclustererplus

+0

有没有npm包? – TomP