Ios 将当前位置与其他位置列表进行比较

Ios 将当前位置与其他位置列表进行比较,ios,xcode,geolocation,Ios,Xcode,Geolocation,我有一个超过6000个GPS位置的数据库。 我想比较用户的当前位置,并检测用户是否在距离6000个位置中任何一个10米的范围内 我怎样才能在不经过所有6000个点并计算它们的相对距离的情况下实现这一点 谢谢, 丹尼尔 更新: 如果我把用户的当前位置放在一个5 ^ 2米长方形的中间,并且提取所有的位置,在当前的顶点之间。p> 一种简单的方法是创建另一个数据库或将当前数据库修改为索引。但是,这种方法无法很好地处理位置密度,因此,如果您的点分布不均匀,可能不会有太大的改进。从逻辑上讲,除非6000个位

我有一个超过6000个GPS位置的数据库。 我想比较用户的当前位置,并检测用户是否在距离6000个位置中任何一个10米的范围内

我怎样才能在不经过所有6000个点并计算它们的相对距离的情况下实现这一点

谢谢, 丹尼尔

更新
如果我把用户的当前位置放在一个5 ^ 2米长方形的中间,并且提取所有的位置,在当前的顶点之间。p> 一种简单的方法是创建另一个数据库或将当前数据库修改为索引。但是,这种方法无法很好地处理位置密度,因此,如果您的点分布不均匀,可能不会有太大的改进。

从逻辑上讲,除非6000个位置以某种方式进行逻辑分组,否则您将不得不通过所有6000个位置


如果您可以控制数据库结构,您可以将GPS位置组织到多个区域(彼此靠近的位置组),那么这将使您的6000个位置降低到10,20,30(取决于您想要的细粒度),或者100组这些组中的每一组都可以有一个中间点位置和组的总距离,然后你可以在考虑总距离的情况下在组中循环,然后从那里开始细化…

我在这个线程中使用了Chris Simpson的答案:


谢谢大家。

我没有这样的控制权,因为我使用的是核心数据。谢谢。看看这个答案