iphone - 核心数据和核心位置

标签 iphone objective-c cocoa-touch core-data core-location

我有一个具有纬度和经度属性的 Core Data 数据库。有没有办法使用 Core Location 的 getDistanceFrom: 方法找到距离从 GPS 获得的 CLLocation 最近的五个位置?我是否必须使用 Core Data 加载所有对象并通过它们进行解析,对每个对象使用 getDistanceFrom: 还是有更简单的方法?

最佳答案

您将不得不一个一个地遍历它们;据我所知,没有其他方法可以做到这一点。

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

即有点像

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 不同的数字!

另外,我还没有考虑经度环绕的事实!

关于iphone - 核心数据和核心位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2176127/

相关文章:

iphone - 核心数据内存泄漏

iphone - UIPopover 无法从 UIButton 正确显示

ios - iPhone - 振动 5 次?

ios - 在进行布局到布局的导航转换时使用自定义转换布局

iphone - UIToolBar 不绘制在 iPhone 屏幕底部

iphone - 如何以编程方式布局在不同 "modes"之间切换的应用程序?

iphone - COCOS 2D iPhone - 解析场景之间的变量并在图层中使用

ios - NSLayoutConstraint 设置

ios - 如果我不需要持久存储,那么以类似数据库的方式存储数据的最佳做法是什么? NSMutableArray?

iphone - 如何将重复背景图像设置为表格单元格