对于我的iPhone应用,我已经在变量userLocation
中获得了用户的位置,并且我正在使用CLLocationManager didUpdateLocations
方法不断更新它。
在我的解析数据库中,我有数千个存储位置。
我的问题是,最强 高效 的方式是持续比较/判断这些解析数据库位置是否在用户当前100米范围内位置?
我目前的方法是在每次用户位置发生变化时浏览数据库位置数组;计算距离当前位置的距离并判断距离是否小于100米但是随着位置的不断变化,处理器和电池会很重。有什么建议吗?
答案 0 :(得分:1)
您可以根据用户的移动速度,通过不断更改X或N值来结合Anna的想法(请参阅评论)。
如果用户正在行走,那么您只需要执行下一个查询更长时间。但是,如果用户正在使用自行车,那么下一个查询应该更快。
答案 1 :(得分:0)
我会评论,但没有代表..无论如何,您可以将位置细分为树型结构,以在每次迭代中移除一半的位置 - 取决于您可以使用的位置军械网格正方形或如果不是,稍微小一点的东西。这样你只搜索一个相当接近的位置的子集..? E.g Quad Trees