Ios 查找距离当前位置100米以内的保存位置

Ios 查找距离当前位置100米以内的保存位置,ios,swift,parse-platform,core-location,cllocationmanager,Ios,Swift,Parse Platform,Core Location,Cllocationmanager,对于我的iPhone应用程序,我在变量userLocation中获得了用户的位置,并使用CLLocationManager diddupdatelocations方法不断更新它 在我的解析数据库中,我有数千个存储位置 我的问题是,持续比较/判断这些解析数据库位置是否在用户当前位置100米范围内,最有效的方法是什么 我目前的方法是在每次用户位置更改时遍历数据库位置数组;计算距离当前位置的距离,并判断距离是否小于100米,但随着位置不断变化,这将对处理器和电池造成沉重负担。有什么建议吗?我会发表评论

对于我的iPhone应用程序,我在变量
userLocation
中获得了用户的位置,并使用
CLLocationManager diddupdatelocations
方法不断更新它

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

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


我目前的方法是在每次用户位置更改时遍历数据库位置数组;计算距离当前位置的距离,并判断距离是否小于100米,但随着位置不断变化,这将对处理器和电池造成沉重负担。有什么建议吗?

我会发表评论,但没有代表。。无论如何,您可以将这些位置分解为一个树状结构,以便在每次迭代中删除一半的位置-根据您的位置,您可以使用Armont grid squares,或者如果没有,则使用更小的东西。这样,您只搜索距离较近的位置子集。。?例如

你可以结合Anna的想法(见注释),根据用户的移动速度不断更改X或N值


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

我不知道这是否是最有效的,但我就是这样做的:也许您应该从设备发送用户的位置以进行解析,并告诉它根据数据运行查询(请参阅),而不是将所有其他位置数据带到设备。跟踪上次完成查询的时间,仅当用户位置更改X米或上次查询时间超过N分钟时,才再次调用该查询。