【问题标题】:Change marker in map clustering android地图聚类android中的更改标记
【发布时间】:2015-02-12 05:42:30
【问题描述】:

我正在使用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);
    }

【问题讨论】:

  • 您是在询问更改默认标记图标的代码吗?
  • 类似的东西。我想为不同的项目设置不同的标记图标。
  • 请参考link

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以使用它来使用这个 sn-p 创建自定义标记。

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

    【讨论】:

    • 这是一个错误的答案。它甚至改变了集群的图像(是的,谷歌地图有问题)。
    猜你喜欢
    • 2012-06-22
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 2013-01-08
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多