标记集包的动画集群

cha*_*hne 6 google-maps google-maps-api-3 markerclusterer

我正在使用带有MarkerClustererPlus的Google Maps v3.点击文档

如果群集包含特定标记,我想为群集设置动画.如果标记不在群集内,则动画非常容易.

  marker.setAnimation(google.maps.Animation.BOUNCE);
Run Code Online (Sandbox Code Playgroud)

但我想反弹整个群集图标.我可以通过以下方式获得群集:

  markerCluster.getClusters();
Run Code Online (Sandbox Code Playgroud)

但是我如何将cluster-div与我的getClusters() - Array相关联?我不知道哪个div属于getClusters()函数中的哪个集群.

Dr.*_*lle 8

这不可能通过记录的方法/属性实现,但您可以访问这些属性.

  • 步骤1:每个集群都有一个 markers_-property,它是一个包含集群所有标记的数组.迭代所有簇并检查markers_-array是否包含想要的标记

  • 步骤2:当您找到具有所需标记的集群时,访问clusterIcon_.div_集群的属性,这是表示集群图标的元素

    //attach listener to clusteringend-event
    google.maps.event.addListener(markerClustererInstance,'clusteringend',function(){
    
    //iterate over all clusters
    var clusters=this.getClusters();
    for(var i = 0; i < clusters.length;++i){
    
    if(clusters[i].markers_.length > 1 
          && clusters[i].clusterIcon_.div_){
    
            // clusters[i].clusterIcon_.div_ is the HTMLElement
            // that contains the wanted clusterIcon,
            // you should at first reset here recently applied changes
    
            if(clusters[i].markers_.indexOf(wantedMarker)>-1){
              //the marker has been found, do something with it
            } 
      }
    }});
    
    Run Code Online (Sandbox Code Playgroud)

    但请注意:群集图标不是a google.maps.Marker,您不能简单地应用动画,因为您可以使用本机标记.此外:修改群集图标位置的动画(例如反弹)可能会干扰markerClusterer,我建议使用可以通过颜色更改或背景图像更改应用的效果(群集图标你看看是div的背景图像.