0

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

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

如果我没记错的话,有一个最佳做法:当 GPS 位置在某个区域时收到通知。这允许对电池进行优化。

你能给我一些建议吗?

4

2 回答 2

3

每1800个不同区域要监控1800个点?

这不可能。见这里

因此,Core Location 将单个应用程序可以同时监控的区域数量限制为 20 个。

如果您要监控的区域超过 20 个,您可以这样做:-

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

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

于 2014-05-08T14:56:14.207 回答
0

定义您所说的接近其中一些点的意思。

您可以使用半正弦公式来计算当前位置与每个测试点集之间的距离。计算涉及相当数量的三角函数,因此计算量可能很大,但根据您的应用程序,可能不需要每分钟左右重新计算一次以上。

于 2014-05-08T15:12:49.410 回答