gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:47:59 25 4
gpt4 key购买 nike

我可以通过创建 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com