更改地图集群中的标记

Sag*_*yad 5 android google-maps markerclusterer google-maps-android-api-2

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

在此处输入图片说明

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

码:

@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);
    }
Run Code Online (Sandbox Code Playgroud)

MFQ*_*MFQ 7

您应该onBeforeClusterItemRendered通过制作自定义Renderer类来实现并进行更改:

 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));
    }
}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记将自定义渲染器添加到群集管理器中

 mClusterManager.setRenderer(new MarkerClusterRenderer(this, mMap, mClusterManager));
Run Code Online (Sandbox Code Playgroud)


小智 -2

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

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