1

我正在使用Map Utils庫進行地圖上的集羣。現在,我想改變其顯示地圖像下面的默認標誌:更改地圖集羣中的標記android

enter image description here

你可以看到綠色的圓圈標記。我想改變這一點。我已經實現了這一點。但不知道如何改變這一點。如果你有人知道,那麼有助於解決這個問題。

代碼:

@Override 
    protected void startDemo() { 
     getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10)); 

     mClusterManager = new ClusterManager<MyItem>(this, getMap()); 
     getMap().setOnCameraChangeListener(mClusterManager); 

     try { 
      readItems(); 
     } catch (JSONException e) { 
      Toast.makeText(this, "Problem reading list of markers.", Toast.LENGTH_LONG).show(); 
     } 
    } 

    private void readItems() throws JSONException { 
     InputStream inputStream = getResources().openRawResource(R.raw.radar_search); 
     List<MyItem> items = new MyItemReader().read(inputStream); 
     mClusterManager.addItems(items); 
    } 
+0

是你問關於更改默認標記圖標的代碼? – droidd 2015-02-12 05:47:05

+0

這樣的事情。我想爲不同的項目設置不同的標記圖標。 – Riser 2015-02-12 05:47:59

+0

請參閱此[鏈接](https://developers.google.com/maps/documentation/android/marker) – droidd 2015-02-12 05:52:55

回答

-1

,你可以用它來創建一個使用這個片段的自定義標記。

Marker marker = googleMap.addMarker(new MarkerOptions(). 
       position(51.503186, -0.126446).title("mapTitle").snippet("is cool") 
        .icon(BitmapDescriptorFactory 
          .fromResource(R.drawable.ic_launcher))); 
1

您應該實現onBeforeClusterItemRendered和製作自定義渲染類進行更改:

public class MarkerClusterRenderer extends DefaultClusterRenderer<MyItem> { 

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

    @Override 
    protected void onBeforeClusterItemRendered(MyItem item, MarkerOptions markerOptions) { 
     // use this to make your change to the marker option 
     // for the marker before it gets render on the map 
     markerOptions.icon(BitmapDescriptorFactory. 
       fromResource(R.drawable.your_custom_marker)); 
    } 
} 

,不要忘記您的自定義渲染器添加到您的集羣管理器

mClusterManager.setRenderer(new MarkerClusterRenderer(this, mMap, mClusterManager));