查找距离当前位置100米范围内的已保存位置

时间:2015-03-27 20:20:32

标签: ios swift parse-platform core-location cllocationmanager

对于我的iPhone应用,我已经在变量userLocation中获得了用户的位置,并且我正在使用CLLocationManager didUpdateLocations方法不断更新它。

在我的解析数据库中,我有数千个存储位置。

我的问题是,最强 高效 的方式是持续比较/判断这些解析数据库位置是否在用户当前100米范围内位置?

我目前的方法是在每次用户位置发生变化时浏览数据库位置数组;计算距离当前位置的距离并判断距离是否小于100米但是随着位置的不断变化,处理器和电池会很重。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以根据用户的移动速度,通过不断更改X或N值来结合Anna的想法(请参阅评论)。

如果用户正在行走,那么您只需要执行下一个查询更长时间。但是,如果用户正在使用自行车,那么下一个查询应该更快。

答案 1 :(得分:0)

我会评论,但没有代表..无论如何,您可以将位置细分为树型结构,以在每次迭代中移除一半的位置 - 取决于您可以使用的位置军械网格正方形或如果不是,稍微小一点的东西。这样你只搜索一个相当接近的位置的子集..? E.g Quad Trees