Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在谷歌地图中为clusterer中的标记设置我自己的图标_Android_Google Maps_Markerclusterer - Fatal编程技术网

Android 如何在谷歌地图中为clusterer中的标记设置我自己的图标

Android 如何在谷歌地图中为clusterer中的标记设置我自己的图标,android,google-maps,markerclusterer,Android,Google Maps,Markerclusterer,我在用谷歌地图聚类。我有4种不同类型的标记,每一种都是从一个抽象类扩展而来的,每一种都有它的owm图标,并在MarkerOptions字段中定义。我对这个抽象类使用ClusterManager。 当我使用 //marker is instance of one of extended classes and has abstract class type clusterManager.addItem(marker); 聚类后,它将图标设置为默认值。我怎样才能解决这个问题?我试着用这样的东西:

我在用谷歌地图聚类。我有4种不同类型的标记,每一种都是从一个抽象类扩展而来的,每一种都有它的owm图标,并在MarkerOptions字段中定义。我对这个抽象类使用ClusterManager。 当我使用

//marker is instance of one of extended classes and has abstract class type
clusterManager.addItem(marker);
聚类后,它将图标设置为默认值。我怎样才能解决这个问题?我试着用这样的东西:

//marker is abstract marker, getMarker returns the MarkerOptions of this marker
clusterManager.getMarkerCollection().addMarker(marker.getMarker());
但它也不起作用,标记在地图上印有所需的图标,但没有聚类

我应该在我的抽象类中创建一些方法,还是有一些方法可以从DefaultClusterRenderer扩展来实现这一点?我还没有找到一些关于使用谷歌或学习谷歌地图库的信息


谢谢你的帮助

所以,这是我的愚蠢。再次,它表明,我应该更加关注,学习图书馆。如果有人对答案感兴趣,这里是: 我的假设是正确的,我需要重写DefaultClusterRenderer中的某个方法。因此,全程: 创建自己的类并从DefaultClusterRenderer扩展它:

public class OwnIconRendered extends DefaultClusterRenderer<AbstractMarker>

方法相当简单,但在我看来,集群开始工作得较慢。所以,这就足够了。

我想现在已经太晚了,但是以后你可以看看我的情况,我不得不调用
super().onBeforeClustererItemRendered
嘿!晚些时候。但是添加自定义图标后对集群有什么影响?慢了多少?你能分享一些数字吗?我也在研究类似的问题,我想在开始之前了解一下它会对性能造成多大的影响@瓦西洛瓦图尔
@Override
protected void onBeforeClusterItemRendered(AbstractMarker item,
        MarkerOptions markerOptions) {
    markerOptions.icon(item.getMarker().getIcon());
}