【发布时间】:2013-09-10 03:16:48
【问题描述】:
我有一个基于地图的应用程序,使用 Google Maps 的 iOS SDK。我需要在核心数据数据库中存储多达数千个项目,并在地图上用标记显示它们。出于性能和可用性的原因,我需要在用户缩小时对这些标记进行聚类,但我需要确保放置有代表性的标记,以便用户知道在哪里放大以查看更多细节。
我的核心数据模型中的每个条目都存储了纬度/经度双精度值。因此,我想到的对项目进行聚类的方法是保留一个单独的实体,在其中剥离地理坐标中不太重要的部分并在其中存储一个计数。
因此,每当将具有 lat/lon {44.9382719, -130.20293849} 的项目插入数据库时,另一个具有 lat/lon {44.9, -130.2} 的“集群”对象的计数属性就会增加。这个想法是,在低缩放(即缩小)时,我只会查询集群对象并将它们放在地图上而不是实际项目上。
我的问题是:根据NSManagedObject reference,您不应该在awakeFromInsert 中获取东西,那么我怎样才能确保插入一种托管对象会更新相应托管对象的值另一种?
【问题讨论】:
-
这很有趣,但看起来它使用了 MapKit。它也适用于 Google 地图吗?
-
需要修改marker和集群的委托方法
-
你做到了吗?我正在做一个类似的项目,但很快我遇到了麻烦
标签: ios objective-c google-maps core-data