2013-08-26 3 views
5

का एनिमेट क्लस्टर मैं मार्करक्लस्टररप्लस के साथ Google मानचित्र v3 का उपयोग कर रहा हूं। Click for docsमार्करक्लस्टरर

यदि क्लस्टर में एक विशिष्ट मार्कर होता है तो मैं क्लस्टर को एनिमेट करना चाहता हूं। यदि मार्कर क्लस्टर के अंदर नहीं है तो एनीमेशन काफी आसान है।

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

लेकिन मैं पूरे क्लस्टर-आइकन को उछालना चाहता हूं। मैं क्लस्टर प्राप्त कर सकता हूं:

markerCluster.getClusters(); 

लेकिन मैं अपने getClusters() - Array के साथ क्लस्टर-div को कैसे जोड़ सकता हूं? मुझे नहीं पता कि कौन सा div getClusters() - फ़ंक्शन से क्लस्टर से संबंधित है।

उत्तर

8

यह दस्तावेज विधियों/गुणों के माध्यम से संभव नहीं है, लेकिन आप इन गुणों तक पहुंच प्राप्त कर सकते हैं।

  • चरण # 1: प्रत्येक क्लस्टर जो एक सरणी कि क्लस्टर के सभी मार्कर होता है एक markers_ -property है। सभी समूहों से अधिक पुनरावृति और देखें कि क्या markers _ सरणी वांछित मार्कर

  • चरण # 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 नहीं है, तो आप बस एक एनीमेशन आप एक देशी मार्कर के साथ यह कर सकते हैं के रूप में लागू नहीं कर सकते। इसके अलावा: क्लस्टर-आइकन (उदाहरण के लिए बाउंस) की स्थिति को संशोधित करने वाले एनिमेशन मार्कर क्लस्टरर में हस्तक्षेप कर सकते हैं, मैं उन प्रभावों का उपयोग करने का सुझाव दूंगा जिन्हें रंग-परिवर्तन या पृष्ठभूमि-छवि के परिवर्तनों के माध्यम से लागू किया जा सकता है (क्लस्टर-आइकॉन आप div की पृष्ठभूमि-छवियां देखें)।

+0

हाँ यह एक आकर्षण की तरह काम कर रहा है! धन्यवाद – chaosbohne

+0

मुझे वास्तव में एक समान समस्या है। मुझे अपनी कक्षा को div_ (css3 एनीमेशन) में एक वर्ग जोड़कर एनिमेटिंग मिला। हालांकि, समस्या उत्पन्न होती है जब कोई उपयोगकर्ता एनीमेशन स्टॉप को ज़ूम इन/आउट करता है क्योंकि क्लस्टर को रीसेट कर दिया गया है इसलिए अतिरिक्त कक्षाएं चली गई हैं। मैंने क्लस्टर के अंदर मार्कर का ट्रैक रखने की कोशिश की है जिसे मैं एनिमेट करना चाहता हूं, फिर ज़ूम पर जो 'क्लस्टरिंगेंड' ट्रिगर करता है, मैं उस वर्ग को दोबारा जोड़ दूंगा। हालांकि, यह काम नहीं किया ... :(ज़ूम इन/आउट के बाद एनीमेशन को रोकने से कैसे रोक सकता हूं? –