首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心数据和核心位置

核心数据和核心位置
EN

Stack Overflow用户
提问于 2010-02-01 18:58:15
回答 2查看 7.6K关注 0票数 24

我有一个核心数据数据库与纬度和经度属性。有没有一种方法可以使用核心位置的getDistanceFrom:方法来找到离CLLocation最近的五个位置?我是否必须使用核心数据加载所有对象并对它们进行解析,在每个对象上使用getDistanceFrom:,还是有更简单的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-01 19:10:25

您必须逐个迭代它们;据我所知,没有其他方法可以做到这一点。

但是,当您从核心数据获取项目时,您可以通过使用边界框来提高效率-这将减少将返回的对象的数量。

也就是说,类似于

代码语言:javascript
复制
float latMax = wantedLat + 1;
float latMin = wantedLat - 1;
float lngMax = wantedLng + 1;
float lngMin = wantedLng - 1;
NSPredicate *predicate = [NSPredicate
    predicateWithFormat:@"lat > %f and lat < %f and lng > %f and lng < %f",
    latMin, latMax, lngMin, lngMax];

但是,根据您拥有的数据量和数据间距的不同,您可能希望使用不同于1的数字!

相同的

另外,我还没有考虑到经度换行的事实!

票数 29
EN

Stack Overflow用户

发布于 2010-02-01 19:10:02

不能使用CoreData查找最近的对象,但可能需要使用边界框来缩小查询范围。要找到最近的对象,您可能更喜欢简单地使用经度/经度的差异,这比计算实际距离要快得多。

我也有一个类似的问题:

CoreData: Find minimum of calculated property

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2176127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档