2015-09-03 43 views
0

我做了一个谷歌地图与过滤器工作正常,但现在我不得不添加集群以及获取越野车时使用过滤器。我已经尝试过在堆栈溢出中发布的几个解决方案,但是我无法使它适用于过滤器和集群。在地图上进行过滤时,群集不会更新并仍显示所有标记。所以我想这样做是推动数组中的过滤标记,并基于该数组我试图创建一个新的集群实例,但它不工作,所以请帮助。谷歌地图标记过滤器与集群

processChildren(listElement, function(el) { 
        var lat = parseFloat(getAttribute(el, 'data-lat')), 
        lng = parseFloat(getAttribute(el, 'data-lng')), 
        title = getAttribute(el, 'data-title'), 
        icon = getAttribute(el, 'data-icon'), 
        category = getAttribute(el, 'data-category'), 
        markerOptions, 
        marker; 

        if (!isNaN(lat) && !isNaN(lng)) { 
         markerOptions = mergeRecursive({}, mergeRecursive(settings.marker, { 
          position: new google.maps.LatLng(lat, lng), 
          title: title, 
          category: category 
         })); 
         if (icon) { 
          markerOptions.icon = icon; 
         } 

         marker = new google.maps.Marker(markerOptions); 

         markers.push(marker); 

         marker._locationElement = el; 
         el._marker = marker; 
         google.maps.event.addListener(marker, settings.marker.showInfoWindowAction, showInfoWindow); 
         if (settings.list.showInfoWindowAction) { 
          google.maps.event.addDomListener(el, settings.list.showInfoWindowAction, showMarker); 
         } 
        } 



       }); 


            if (settings.clusterer.enabled) { 
        clusterer = new MarkerClusterer(map, markers, settings.clusterer); 


       } 
+0

请提供[最小,完整,测试和可读示例](后http://stackoverflow.com/help/mcve)**在问题本身**(不是链接到一个破损的页面),说明问题,以及一些迹象表明你尝试过的解决方案对你没有帮助。 – geocodezip

+0

嗨,感谢您的评论,因为js代码相当长,所以我没有在这里发布代码,而是提供了链接到网站。我稍后更新了这个问题 –

+0

如果它“很长”,它可能不是一个**最小**的例子。 – geocodezip

回答

1

实测值过滤与所述溶液它必须创建当前群集实例并创建集群的新实例与过滤的列表

google.maps.event.addDomListener(select, "change", function() { 
      var selected = this.value; 
      clusterer.clearMarkers(); 
      clusterer.addMarkers(markers[selected]); 
     });