检查用户位置是否接近某些点

我有一个关于GPS报警的问题。

我有一些点(经度和纬度)。 我需要一种方法来检查用户位置是否接近这些点(大约是1800点)。

如果我没有记错的话,最好的做法是:当GPS位置在某个区域时通知。 这允许关于电池的优化。

你能给我什么build议吗?

按1800个不同地区1800点要监测?

这不可能。 看到这里 :

出于这个原因,核心位置限制为20个地区的数量可能会同时监控一个单一的应用程序。

如果你有超过20个地区需要监测,这是你可以做的:

  1. 当用户启动您的应用程序时,获取用户的位置并将位置发送到您的服务器
  2. 服务器获取用户位置后,将所有点收集在N公里(KM)范围内。
  3. 如果N KM内的分数小于20,则将所有分数发送给您的用户进行监控。
  4. 如果N KM内的点数大于20,则服务器必须根据较小的半径(例如:N-1 KM)来减less点数,

我自己开发了一个区域监控应用程序,这就是我们所做的。

定义你接近这些点的含义。

您可以使用半正式公式来计算您当前位置与每组testing点之间的距离。 计算涉及相当数量的trig函数,因此可以计算出密集程度,但取决于您的应用程序,可能不需要每分钟重新计算一次以上。