我正在使用 GoogleMaps 集群。我有 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());
但它也不起作用,标记在 map 上打印了所需的图标,但没有聚类。
我应该在我的抽象类中创建创建一些方法,还是有一些方法可以从 DefaultClusterRenderer 扩展来做到这一点?使用 Google 或学习 google maps lib,我还没有找到有关它的一些信息。
感谢您的帮助!
最佳答案
所以,这是我的愚蠢。这再次表明,我应该更加注意学习图书馆。如果有人对答案感兴趣,这里是: 我的假设是正确的,我需要重写 DefaultClusterRenderer 中的某些方法。所以,完整的方法: 创建自己的类并从 DefaultClusterRenderer 扩展它:
public class OwnIconRendered extends DefaultClusterRenderer<AbstractMarker>
然后覆盖方法onBeforeClusterItemRendered:
@Override
protected void onBeforeClusterItemRendered(AbstractMarker item,
MarkerOptions markerOptions) {
markerOptions.icon(item.getMarker().getIcon());
}
方法很简单,但在我看来,集群开始工作得更慢了。所以,这就足够了。
关于android - 如何在 Google map 的聚类器中为标记设置我自己的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23658561/