在iOS中对Google Maps标记进行聚类

时间:2013-09-10 03:16:48

标签: ios objective-c google-maps core-data

我有一个基于地图的应用程序,使用谷歌地图的iOS SDK。我需要在核心数据数据库中存储多达数千个项目,并在地图上显示标记。出于性能和可用性的原因,我需要在用户缩小时对这些标记进行聚类,但我需要确保放置代表性标记,以便用户知道放大的位置以查看更多细节。

我的核心数据模型中的每个条目都存储了纬度/经度双值。因此,我想要对项目进行聚类的是保留一个单独的实体,我在其中剥离地理坐标的不太重要的部分并在其中存储计数。

因此,每当在数据库中插入具有lat / lon {44.9382719,-130.20293849}的项目时,具有lat / lon {44.9,-130.2}的另一个“cluster”对象的count属性会递增。我的想法是,在低缩放(即缩小)时,我只会查询群集对象并将其放在地图上而不是实际的项目上。

我的问题是:根据NSManagedObject reference,您不应该在awakeFromInsert中获取内容,因此如何确保插入一种托管对象更新a的值相应的另一种管理对象?

2 个答案:

答案 0 :(得分:7)

我已经在Google Maps for iOS中搜索群集标记库三天了,最后我最终得到了这个https://github.com/googlemaps/google-maps-ios-utils,它运行良好且易于使用和理解。

答案 1 :(得分:1)

看一下routeMe,这是默认的

/** Whether the annotation should be clustered when map view clustering is enabled. Defaults to. */ @property (nonatomic, assign) BOOL clusteringEnabled;

相关问题