2015-04-22 17 views
5

Şu anda küme simgesi rengini değiştirmeye çalışıyorum (varsayılan mavidir), ancak bunu anlayamıyorum. Küme yöneticimi ve benzeri ayarları zaten kurdum ve simgenin kendisini görebiliyorum, ancak mavi. Şu anda haritayı ayarlamak için varsayılan Google kurulumunu (aşağıdaki kod bölümüne bakın) kullanıyorum. Verma yorumlarda sizin küme için tamamen özelleştirilebilir bir simge uygulamak mümkündür belirtildiği gibi Herhangi bir yardımAndroid Google haritamdaki küme renklerini nasıl değiştirebilirim?

Teşekkür,

Jacob

public class MainActivity extends Activity { 
    GoogleMap map; 
    ClusterManager mClusterManager; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     MapFragment mapFragment = (MapFragment) getFragmentManager() 
       .findFragmentById(R.id.map); 
     map = mapFragment.getMap(); 
     setUpClusterer(); 
    } 
    private void setUpClusterer() { 
     // Declare a variable for the cluster manager. 


     // Position the map. 
     map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10)); 

     // Initialize the manager with the context and the map. 
     // (Activity extends context, so we can pass 'this' in the constructor.) 
     mClusterManager = new ClusterManager<MyItem>(this, map); 

     // Point the map's listeners at the listeners implemented by the cluster 
     // manager. 
     map.setOnCameraChangeListener(mClusterManager); 
     map.setOnMarkerClickListener(mClusterManager); 

     // Add cluster items (markers) to the cluster manager. 
     addItems(); 
    } 

    private void addItems() { 

     // Set some lat/lng coordinates to start with. 
     double lat = 51.5145160; 
     double lng = -0.1270060; 

     // Add ten cluster items in close proximity, for purposes of this example. 
     for (int i = 0; i < 2; i++) { 
      double offset = i/60d; 
      lat = lat + offset; 
      lng = lng + offset; 
      MyItem offsetItem = new MyItem(lat, lng); 
      mClusterManager.addItem(offsetItem); 
     } 
    } 
} 


class MyItem implements ClusterItem { 
    private final LatLng mPosition; 

    public MyItem(double lat, double lng) { 
     mPosition = new LatLng(lat, lng); 
    } 

    @Override 
    public LatLng getPosition() { 
     return mPosition; 
    } 
} 
+1

Sen küme https için özel bir simge olması deneyebilirsiniz: //developers.google.com/maps/documentation/android/utility/marker-clustering#custom – Verma

cevap

2

mutluluk duyacağız. Tek yapmanız gereken varsayılan simgedeki arka plan rengini değiştirmekse, bu kod yapılacaktır.

mClusterManager.setRenderer(new CustomClusterRenderer(MainActivity.this, map, mClusterManager)); 

CustomClusterRenderer için, şöyle DefaultClusterRenderer uzatabilirsiniz:

Her iki şekilde size ClusterManager için renderer ayarlamanız gerekir

public class CustomClusterRenderer extends DefaultClusterRenderer<MyItem> { 

    public CustomClusterRenderer(Context context, GoogleMap map, ClusterManager<MyItem> clusterManager) { 
     super(context, map, clusterManager 
    } 

    @Override 
    protected void getColor(int clusterSize) { 
     return Color.BLUE // Return any color you want here. You can base it on clusterSize. 
    } 

    /* 
    @Override 
    protected void onBeforeClusterItemRendered(T item, MarkerOptions markerOptions) { 
     // Use this method to set your own icon for the markers 
    } 

    @Override 
    protected void onBeforeClusterRendered(Cluster<T> cluster, MarkerOptions markerOptions) { 
     // Use this method to set your own icon for the clusters 
    } 
    */ 
} 
İlgili konular