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