iphone - 使用 Objective C 根据经纬度搜索周边郊区

标签 iphone core-data latitude-longitude

我需要识别特定纬度/经度附近感兴趣的项目。我在核心数据中存储了两组对象:

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/

相关文章:

iphone - 应用在iPhone 4上崩溃了吗?

iphone - Plist文件中的"Load"文本并使用它(Xcode)

iphone - 检测 UITextField 失去焦点

core-data - 使用 CoreData 进行良好的设计?

iphone - 根据邮政编码获取某个地点的纬度和经度

c# - Windows Phone根据我的纬度和经度获取附近6公里以内的经纬度

iphone - 动画 UITableViewCell 高度和单元格 backgroundView

ios - 原因: 'An NSManagedObject of class ' NSManagedObject' must have a valid NSEntityDescription?

ios - 如何在detailview中跳转到下一行

android - 如何在Android中根据距当前位置的距离对地理点进行排序