2015-04-29 11 views
8

मैं गूगल मानचित्र के लिए दो ClusterManager उपयोग करने के लिए कोशिश कर रहा हूँ करने के लिए कई ClusterManager जोड़ने के लिए, लेकिन मैं केवल एक clustermanager जोड़ने के लिए कर रहा हूँ और यह आइटम क्लिक करें घटना,गूगल मानचित्र

googleMap.setOnMarkerClickListener (mClusterManager) है,

और

mClusterManager.setOnClusterItemClickListener(new OnClusterItemClickListener<Person>() { 

    @Override 
    public boolean onClusterItemClick(Person item) { 
     Log.v("Cluster Click", "Item Click:"+item.getName()); 
     return true; 
    } 
}); 

मैं एक और clustermanager googlemap कैसे जोड़ सकते हैं?

अग्रिम धन्यवाद।

+0

आप इस के लिए किसी भी समाधान नहीं मिला है? OnClusterItemClickListener, onClusterClickListener और Map.setOnMarkerClickListener के साथ एक ही समस्या है। – KasparTr

उत्तर

8

हां, क्लस्टर प्रबंधकों दोनों के माध्यम से क्लिक श्रोता को प्रतिनिधि दें।

map.setOnClickListener(new GoogleMap.OnMarkerClickListener() { 
    boolean onMarkerClick(Marker m) { 
    clusterManager1.onMarkerClick(m) 
    clusterManager2.onMarkerClick(m) 
    } 
}); 
5

आप इस तरह MarketManager उपयोग कर सकते हैं:

MarkerManager markerManager = new MarkerManager(mMap); 

mClusterManager1 = new ClusterManager<>(getContext(), mMap,markerManager); 
mClusterManager2 = new ClusterManager<>(getContext(), mMap,markerManager); 

mMap.setOnMarkerClickListener(markerManager); 

mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 
     @Override 
     public void onCameraChange(CameraPosition cameraPosition) { 
      mClusterManager1.onCameraChange(cameraPosition); 
      mClusterManager2.onCameraChange(cameraPosition); 
     } 
    }); 


mClusterManager1.setRenderer(myClusterRenderer1 = new MyClusterRenderer(getContext(), mMap, mClusterManager1)); 
mClusterManager2.setRenderer(myClusterRenderer2 = new MyClusterRenderer(getContext(), mMap, mClusterManager2)); 
संबंधित मुद्दे