我需要识别特定纬度/经度附近的感兴趣项目。我在Core Data中存储了两组对象:
PostalArea
- latitude
- longitude
- postcode
Store
- name
- latitude
- longitude
我需要能够从PostalArea
表中检索记录,然后找到附近的商店。
我发现的大多数示例都是基于SQL的。我希望有人可以帮助我使用Core Data。理想情况下,我想将结果集限制为某个数字(例如10),而不是根据距离限制它。
编辑:如果需要,可以将所有记录拉入内存。
答案 0 :(得分:1)
最常见的解决方案是确定lat和long的最小值/最大值,然后根据这些确定谓词。这样可以将搜索范围缩小到一个圆圈内,然后将剩余的对象缩小到内存中,您可以按最接近该点的方式进行排序。
一旦你有了内存中的对象,你就可以用它们做一些有趣的事情。例如,您可以拥有一个名为“currentPoint”的瞬态值,然后您可以在结果数组上使用KVO,例如:
[resultingArray setValue:aPoint forKey:@"currentPoint"];
然后你可以有一个方法返回你可以排序的那个点的距离。
这是一个例子,我确信还有其他方法,但一般的想法是将一个位置的子集存入内存,以便您可以计算距离并最终排序。
答案 1 :(得分:0)
您对REST服务选项有何看法?您使用的是Google API吗?您可以查询这些内容。 Objective C有很多JSON接口。