ios - 如何在 Google Map iOS SDK 中处理多种类型的聚类

标签 ios google-maps

我可以通过创建 2 个 GClusterManager 对象来显示 2 种不同类型的集群。但问题是集群项目被重置为新创建的 GClusterManager 对象,因此当我们放大 map 时,第一个 GClusterManager 对象的项目也不会分解为单独的标记。我正在使用以下类进行聚类:

https://github.com/DDRBoxman/google-maps-ios-utils

最佳答案

这有点不明显,但是当您将集群项添加到 GMUClusterManager 时,实际上项正在添加到 GMUClusterAlgorithm 中。您需要确保正确创建集群管理器。因此,当您清除其中一个管理器[clusterManagerclearItems]中的项目时,其他管理器集群仍保持相关。

// Common clusters setup

id<GMUClusterIconGenerator> iconGenerator = [[GMUDefaultClusterIconGenerator alloc] init];

PinItemClusterRenderer *pin_renderer = [[PinItemClusterRenderer alloc] initWithMapView:self.mapView
                                                               clusterIconGenerator:iconGenerator];

//Pin clusters setup

id<GMUClusterAlgorithm> pin_algorithm =
[[GMUNonHierarchicalDistanceBasedAlgorithm alloc] init];

[pin_renderer setMapView:self.mapView];
pin_cluster_manager =
[[GMUClusterManager alloc] initWithMap:self.mapView
                             algorithm:pin_algorithm
                              renderer:pin_renderer];


//Record clusterSetup

id<GMUClusterAlgorithm> record_algorithm =
[[GMUNonHierarchicalDistanceBasedAlgorithm alloc] init];
RecordItemClusterRenderer *record_renderer = [[RecordItemClusterRenderer alloc] initWithMapView:self.mapView
                                                                           clusterIconGenerator:iconGenerator];
[record_renderer setMapView:self.mapView];
record_cluster_manager =  [[GMUClusterManager alloc] initWithMap:self.mapView
                                                       algorithm:record_algorithm
                                                        renderer:record_renderer];

这两个集群生成器对我来说效果很好。虽然现在我遇到了这些集群相互重叠的问题。

enter image description here

关于ios - 如何在 Google Map iOS SDK 中处理多种类型的聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32371839/

相关文章:

ios - 如何在 iOS 中将标签居中放置在图像上?

android - Flutter 中出现 'Horizontal viewport was given unbounded height' 错误

javascript - 谷歌地图 : ReferenceError - google is not defined

ios - 如何找到坐标所在的海洋

google-maps - 由于内容安全策略 : "Refused to load the image ' data:image/svg+xml. .",Google map 缩放按钮未加载。"

ios - 如何快速实现类调配?

iphone - UISlider第二次卡住

ios - DismissViewController 无法访问presentingViewController

android - 如何创建一个 URL 以使用 CID 查询 Google 地点

java - Google map 查询返回的 JSON 包含像\x26 这样的编码字符(如何解码?)