2015-09-03 3 views
0

Я сделал карту Google с фильтрами, которые работают нормально, но теперь мне также нужно добавить кластеры, которые становятся плохо при использовании фильтров. Я попробовал пару решений, размещенных здесь в переполнении стека, но я не смог заставить его работать с фильтрами и кластерами. Выполняя фильтрацию на карте, кластер не обновляется и все еще показывает все маркеры. поэтому то, что я пытаюсь сделать, это нажать отфильтрованные маркеры в массиве и на основе этого массива я пытаюсь создать новый экземпляр кластера, но он совершенно не работает, поэтому, пожалуйста, помогите.фильтры маркеров google map с кластеризацией

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

Просьба [Minimal, Complete, испытано и читаемую пример] (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]); 
     }); 
Смежные вопросы