检查用户位置是否接近某些点
我有一个关于GPS报警的问题。
我有一些点(经度和纬度)。 我需要一种方法来检查用户位置是否接近这些点(大约是1800点)。
如果我没有记错的话,最好的做法是:当GPS位置在某个区域时通知。 这允许关于电池的优化。
你能给我什么build议吗?
按1800个不同地区1800点要监测?
这不可能。 看到这里 :
出于这个原因,核心位置限制为20个地区的数量可能会同时监控一个单一的应用程序。
如果你有超过20个地区需要监测,这是你可以做的:
- 当用户启动您的应用程序时,获取用户的位置并将位置发送到您的服务器
- 服务器获取用户位置后,将所有点收集在N公里(KM)范围内。
- 如果N KM内的分数小于20,则将所有分数发送给您的用户进行监控。
- 如果N KM内的点数大于20,则服务器必须根据较小的半径(例如:N-1 KM)来减less点数,
我自己开发了一个区域监控应用程序,这就是我们所做的。
定义你接近这些点的含义。
您可以使用半正式公式来计算您当前位置与每组testing点之间的距离。 计算涉及相当数量的trig函数,因此可以计算出密集程度,但取决于您的应用程序,可能不需要每分钟重新计算一次以上。