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

Vas*_*tur 15 android google-maps markerclusterer

我正在使用GoogleMaps群集.我有4种不同类型的标记,每种标记从一个抽象类扩展,每个标记都有自己的图标,并在MarkerOptions字段中定义.我将ClusterManager用于此抽象类.我刚刚使用的时候

//marker is instance of one of extended classes and has abstract class type
clusterManager.addItem(marker);
Run Code Online (Sandbox Code Playgroud)

集群后,它将图标设置为默认值.我怎么解决这个问题?我试图使用这样的东西:

//marker is abstract marker, getMarker returns the MarkerOptions of this marker
clusterManager.getMarkerCollection().addMarker(marker.getMarker());
Run Code Online (Sandbox Code Playgroud)

但它也不起作用,标记在地图上打印了所需的图标,但没有聚类.

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

谢谢你的帮助!

Vas*_*tur 25

所以,这是我的愚蠢.再次,它表明,我应该更加关注,研究图书馆.如果有人有兴趣回答,这里是:我是正确的假设,我需要覆盖DefaultClusterRenderer中的某些方法.所以,完整的方法:创建自己的类并从DefaultClusterRenderer扩展它:

public class OwnIconRendered extends DefaultClusterRenderer<AbstractMarker>
Run Code Online (Sandbox Code Playgroud)

然后覆盖方法onBeforeClusterItemRendered:

@Override
protected void onBeforeClusterItemRendered(AbstractMarker item,
        MarkerOptions markerOptions) {
    markerOptions.icon(item.getMarker().getIcon());
}
Run Code Online (Sandbox Code Playgroud)

方式相当简单,但在我看来,聚类开始变慢.所以,这就够了.

  • 我认为现在为时已晚,但未来你可以看看http://stackoverflow.com/questions/27745299/how-to-add-title-snippet-and-icon-to-clusteritem/27745681#27745681 (2认同)