Android 地图聚类中的变更标记

Android 地图聚类中的变更标记,android,google-maps,google-maps-android-api-2,markerclusterer,Android,Google Maps,Google Maps Android Api 2,Markerclusterer,我正在使用库在地图上进行聚类。现在,我想更改地图中显示的默认标记,如下所示: 你们可以看到绿色圆圈中的标记。我想改变这一点。我已经实现了这个。但我不知道如何改变这一点。如果你有人知道,那就帮助解决这个问题 代码: @覆盖 受保护的void startDemo(){ getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(newlatlng(51.503186,-0.126446),10)); mClusterManager=newcluste

我正在使用库在地图上进行聚类。现在,我想更改地图中显示的默认标记,如下所示:

你们可以看到绿色圆圈中的标记。我想改变这一点。我已经实现了这个。但我不知道如何改变这一点。如果你有人知道,那就帮助解决这个问题

代码:

@覆盖
受保护的void startDemo(){
getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(newlatlng(51.503186,-0.126446),10));
mClusterManager=newclustermanager(this,getMap());
getMap().setOnCameraChangeListener(mClusterManager);
试一试{
readItems();
}捕获(JSONException e){
Toast.makeText(这是“阅读标记列表的问题”,Toast.LENGTH_LONG.show();
}
}
私有void readItems()引发JSONException{
InputStream InputStream=getResources().openRawResource(R.raw.radar\u search);
列表项=新建MyItemReader().read(inputStream);
McClusterManager.addItems(项目);
}

您可以使用它使用此代码段创建自定义标记

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

您应该在BeforeClusterItemRendered上实现
,并通过创建自定义渲染器类进行更改:

 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));
    }
}

您是在询问更改默认标记图标的代码吗?类似的问题。我想为不同的项目设置不同的标记图标。请参阅这是一个错误的答案。它甚至改变了集群的图像(是的,谷歌地图有缺陷)。
 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));