2013-08-26 27 views
5

Tôi đang sử dụng Google Maps v3 với MarkerClustererPlus. Click for docsCụm động thái của markerclusterer

Tôi muốn tạo hoạt ảnh cụm nếu cụm có chứa điểm đánh dấu cụ thể. Hoạt ảnh khá dễ dàng nếu điểm đánh dấu không nằm trong một cụm.

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

Nhưng tôi muốn trả lại toàn bộ biểu tượng cụm. Tôi có thể nhận được cụm với:

markerCluster.getClusters(); 

Nhưng làm cách nào tôi có thể liên kết cụm-div với getClusters() - Array? Tôi không biết div thuộc về cụm nào từ hàm getClusters().

Trả lời

8

Điều này là không thể thông qua các phương pháp/thuộc tính được ghi lại, nhưng bạn có thể truy cập vào các thuộc tính này.

  • BướC# 1: Mỗi cụm có markers_ -property, mà là một mảng chứa tất cả các dấu hiệu của cluster. Lặp qua tất cả các cụm và kiểm tra xem markers _-mảng chứa các điểm đánh dấu truy nã

  • BướC# 2: khi bạn đã tìm thấy các cluster với điểm đánh dấu truy nã, truy cập vào các tài sản clusterIcon_.div_ của cụm, đó là các yếu tố đại diện cho cụm biểu tượng

    //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 
         } 
        } 
    }}); 
    

    Nhưng Lưu ý: cụm-biểu tượng không phải là một google.maps.Marker, bạn không thể chỉ cần áp dụng một hình ảnh động như bạn có thể làm điều đó với một dấu hiệu bản địa. Hơn nữa: Ảnh động sẽ sửa đổi vị trí của biểu tượng cụm (ví dụ: thoát) có thể ảnh hưởng đến markerClusterer, tôi khuyên bạn nên sử dụng hiệu ứng có thể được áp dụng thông qua thay đổi màu hoặc thay đổi hình nền (biểu tượng cụm bạn xem là hình nền của div).

+0

Vâng, nó hoạt động như một sự quyến rũ! Cảm ơn – chaosbohne

+0

Tôi thực sự có một vấn đề tương tự. Tôi đã hoạt hình cụm của mình bằng cách thêm một lớp vào div_ (hoạt ảnh css3) của nó. Tuy nhiên, vấn đề phát sinh khi người dùng phóng to/thu nhỏ hoạt ảnh dừng lại vì các cụm đã được đặt lại do đó các lớp được thêm sẽ biến mất. Tôi đã cố gắng theo dõi các điểm đánh dấu bên trong cụm mà tôi muốn tạo hiệu ứng động, sau đó khi thu phóng kích hoạt 'clusteringend' tôi sẽ thêm lại lớp đó. Tuy nhiên, điều đó không thành công ... :(Làm cách nào để ngăn hoạt ảnh ngừng sau khi phóng to/thu nhỏ? –

Các vấn đề liên quan