android - 如何在 Google map 的聚类器中为标记设置我自己的图标

标签 android google-maps markerclusterer

我正在使用 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/

相关文章:

Android GSON 自定义反序列化

google-maps - Cordova谷歌地图API key 足够安全

graph - 如何在 Gephi 0.9.1 中应用 Girvan Newman 和马尔可夫聚类算法?

google-maps-api-3 - Google Maps Api v3,自定义“群集”图标

android - AAPT : error: attribute fastforward_increment (aka aplicationid. dev:fastforward_increment) 未找到

android - 实现 Google Play 结算库版本 2

android - Proguard 和 Android :(

javascript - 具有多个地址的 Google map AngularJS

ios - 如何修复我的自定义标记的大小和颜色

javascript - 更改 leaflet markercluster 图标颜色,继承其余默认 CSS 属性