2015-04-29 27 views
8

Tôi cố gắng để sử dụng hai ClusterManager cho Google Map, Nhưng tôi có thể thêm chỉ có một clustermanager và đó là mục kích sự kiện,thêm nhiều ClusterManager vào bản đồ Google

googleMap.setOnMarkerClickListener (mClusterManager);

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

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

Làm thế nào tôi có thể thêm một clustermanager hơn để googlemap?

Xin cảm ơn trước.

+0

Bạn đã tìm thấy bất kỳ giải pháp này? Có cùng một vấn đề với onClusterItemClickListener, onClusterClickListener và Map.setOnMarkerClickListener. – KasparTr

Trả lời

8

có, ủy quyền người nghe nhấp qua cho cả người quản lý cụm.

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

bạn có thể sử dụng MarketManager như thế này:

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)); 
Các vấn đề liên quan