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

Posted

技术标签:

【中文标题】如何在谷歌地图的集群中为标记设置我自己的图标【英文标题】:How to set my own icon for markers in clusterer in Google Maps 【发布时间】:2014-07-02 17:44:29 【问题描述】:

我正在使用 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());

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

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

感谢您的帮助!

【问题讨论】:

【参考方案1】:

所以,这是我的愚蠢。它再次表明,我应该更加注意学习图书馆。如果有人有兴趣回答,这里是: 我是对的,我需要重写 DefaultClusterRenderer 中的某些方法。所以,完整的方式: 创建自己的类并从 DefaultClusterRenderer 扩展它:

public class OwnIconRendered extends DefaultClusterRenderer<AbstractMarker>

然后重写方法onBeforeClusterItemRendered

@Override
protected void onBeforeClusterItemRendered(AbstractMarker item,
        MarkerOptions markerOptions) 
    markerOptions.icon(item.getMarker().getIcon());

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

【讨论】:

我觉得已经晚了,不过以后你可以看这里***.com/questions/27745299/… 就我而言,我不得不打电话给super().onBeforeClustererItemRendered 嘿!迟到了。但是添加自定义图标后对集群的影响是什么?慢多少?你能分享一些数字吗?我也在研究类似的问题,在开始之前,我想了解一下它对性能的影响。 @VasilovArtur

以上是关于如何在谷歌地图的集群中为标记设置我自己的图标的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌地图上放置图标标记,图标数量是不是有配额?

我们如何在谷歌地图中为多边形应用可编辑标记

在谷歌地图标记标签的字体真棒图标标记中放置一个数字

如何在谷歌地图的标记中添加多个位图图标?

无法单击标记 - 谷歌地图集群Android,无法在谷歌地图中显示信息窗口

如何在谷歌地图中显示集群时隐藏标记