google-maps - 动画标记集群

标签 google-maps google-maps-api-3 markerclusterer

我正在将 Google Maps v3 与 MarkerClustererPlus 一起使用。 Click for docs

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

  marker.setAnimation(google.maps.Animation.BOUNCE);

但我想反弹整个集群图标。我可以通过以下方式获取集群:
  markerCluster.getClusters();

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

最佳答案

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

  • 第 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
            } 
      }
    }});
    

    但请注意:群集图标不是 google.maps.Marker ,您不能像使用原生标记那样简单地应用动画。此外:将修改集群图标位置的动画(例如反弹)可能会干扰markerClusterer,我建议使用可以通过颜色更改或背景图像更改(您的集群图标)应用的效果请参阅 div 的背景图像)。
  • 关于google-maps - 动画标记集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18452205/

    相关文章:

    javascript - 如何在彼此之上填充 Google map 数据层的颜色?

    javascript - 如何使用谷歌地图API计算两个以上点之间的距离?

    javascript - 谷歌地图不支持API

    javascript - 鼠标悬停在标记簇对象上

    google-maps-api-3 - 为什么我的集群没有触发 MarkerClustererPlus.js 的 mouseover 和 mouseout 事件?

    android - 如何根据用户方向显示谷歌地图

    android - 添加动画作为标记 google maps android

    javascript - 如何覆盖或删除 Google Map API 中的控件

    java - 瓦片不会随 map View 加载,但会随 fragment 加载