我需要识别特定纬度/经度附近感兴趣的项目。我在核心数据中存储了两组对象:
PostalArea
- latitude
- longitude
- postcode
Store
- name
- latitude
- longitude
我需要能够从 PostalArea
表中检索记录,然后查找附近的商店。
我发现的大多数示例都是基于 SQL 的。我希望有人可以帮助我使用核心数据来实现这一点。理想情况下,我希望将结果集限制为某个数字(例如 10),而不是根据距离进行限制。
编辑:如果需要,可以选择将所有记录拉入内存。
最佳答案
最常见的解决方案是确定纬度和经度的最小值/最大值,然后根据这些值进行谓词。这会将搜索范围缩小到一个圆圈内,然后根据内存中剩余的对象,您可以按照最接近的点进行排序。
更新
一旦将对象存入内存,您就可以用它们做一些有趣的事情。例如,您可以有一个名为“currentPoint”的 transient 值,然后您可以对结果数组进行 KVO,例如:
[resultingArray setValue:aPoint forKey:@"currentPoint"];
然后您可以有一个方法返回距该点的距离,您可以根据该距离进行排序。
这是一个例子,我确信还有其他方法,但总体思路是将位置的子集放入内存中,以便您可以计算距离并最终排序。
关于iphone - 使用 Objective C 根据经纬度搜索周边郊区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464295/