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

Shi*_*ami 7 google-maps core-data objective-c ios

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

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

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

我的问题是:根据NSManagedObject引用,你不应该获取内容awakeFromInsert,那么我如何确保插入一种托管对象更新另一种相应托管对象的值?

Nit*_*rad 7

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

  • 似乎https://github.com/googlemaps/google-maps-ios-utils的作者已从其库中删除了一些文件...虽然你可以获取它以前的文件,当我从它下载时,包含聚类算法和iOS示例项目,来自以下链接http://goo.gl/R0wgeh (2认同)

小智 1

看看routeMe,这是默认的

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