根据纬度和频率搜索周边郊区使用Objective C的经度

时间:2010-08-12 02:15:59

标签: iphone core-data latitude-longitude

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

PostalArea
- latitude
- longitude
- postcode

Store
- name 
- latitude
- longitude

我需要能够从PostalArea表中检索记录,然后找到附近的商店。

我发现的大多数示例都是基于SQL的。我希望有人可以帮助我使用Core Data。理想情况下,我想将结果集限制为某个数字(例如10),而不是根据距离限制它。

编辑:如果需要,可以将所有记录拉入内存。

2 个答案:

答案 0 :(得分:1)

最常见的解决方案是确定lat和long的最小值/最大值,然后根据这些确定谓词。这样可以将搜索范围缩小到一个圆圈内,然后将剩余的对象缩小到内存中,您可以按最接近该点的方式进行排序。

更新

一旦你有了内存中的对象,你就可以用它们做一些有趣的事情。例如,您可以拥有一个名为“currentPoint”的瞬态值,然后您可以在结果数组上使用KVO,例如:

[resultingArray setValue:aPoint forKey:@"currentPoint"];

然后你可以有一个方法返回你可以排序的那个点的距离。

这是一个例子,我确信还有其他方法,但一般的想法是将一个位置的子集存入内存,以便您可以计算距离并最终排序。

答案 1 :(得分:0)

您对REST服务选项有何看法?您使用的是Google API吗?您可以查询这些内容。 Objective C有很多JSON接口。