android - 更改 map 聚类android中的标记

标签 android google-maps google-maps-android-api-2 markerclusterer

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

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

最佳答案

您应该实现 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));
    }
}

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

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

关于android - 更改 map 聚类android中的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470139/

相关文章:

java - 使用充气城堡生成 RSA key 对。使代码可从 java 程序运行

android - 当我在 Android native 项目(使用 ARCore)中使用 Unity 库(使用 ARCore)时,程序类型已经存在 : android. media.VisibleImage 错误

JavaScript 错误 "MyIdentifier is not defined"

javascript - 如何使用 JavaScript 在 Google map 上绘制圆圈内的数字

android - 如何在 fragment 中使用谷歌地图 V2?

android - 有什么方法可以异步调用 Geocoder.getFromLocation 吗?

android - Android 中的位置更改

Android:如何对齐底部的复选框文本?

android - 如何更改 Android EditText 键盘颜色?

javascript - 谷歌地图在 event.addlistener 中检测标记点击