首页 > 解决方案 > 如何在 Swift 4 中更改谷歌地图的集群颜色

问题描述

我按照https://developers.google.com/maps/documentation/ios-sdk/utility/marker-clustering实现了它。

但是,有一个问题。

我不知道如何控制集群标记的颜色和透明度。

我浏览了搜索,但我无法理解任何其他语言代码,包括 Object-C。

let iconGenerator = GMUDefaultClusterIconGenerator ()
let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm ()
let renderer = GMUDefaultClusterRenderer (mapView: mapView, clusterIconGenerator: iconGenerator)

我也发现这可以解决。

我想获得一种方法来控制群集标记(圆形)的边框、背景颜色、透明度和大小。

请帮我。

标签: iosswiftgoogle-mapsmarkerclusterer

解决方案


如果您只需要更改颜色,则可以在初始化 GMUDefaultClusterIconGenerator 时添加具有多种颜色的存储桶(或者如果您只需要一种颜色,则只需一种,如下例所示)。我使用了大量(高于集群项目的最大数量),以便所有集群都具有相同的颜色。要使用多种颜色,您可以添加多个桶和多种颜色。

let iconGenerator = GMUDefaultClusterIconGenerator.init(buckets: [99999], backgroundColors: [UIColor.red])
let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm()
let renderer = GMUDefaultClusterRenderer(mapView: googleMapView, clusterIconGenerator: iconGenerator)

clusterManager = GMUClusterManager(map: googleMapView, algorithm: algorithm, renderer: renderer)
clusterManager.setDelegate(self, mapDelegate: self)

要将图像用作集群背景,您可以按照您的指示创建自定义 GMUClusterRenderer,也可以为您的存储桶提供一组 backgroundImages:

let iconGenerator = GMUDefaultClusterIconGenerator.init(buckets: [99999], backgroundImages: [UIImage(named: "YOUR_IMAGE_HERE")!])

推荐阅读