如何在使用大量(50)地理围栏时减少电池消耗

时间:2014-06-18 14:39:05

标签: android google-maps geofencing android-geofence

我的要求:

路径(路线)周围的区域有一些重要的位置(数量约为50)。当用户在路径上移动并到达最近的地方(例如A)时,我需要执行一些特定于该地点的任务(例如A)。

目前,我正在同时为所有需要的地方创建地理围栏,但对电池消耗有疑问。

有没有办法减少电池消耗?如果是,那么请帮忙。任何帮助或指导都将受到赞赏。

注意:用户可以从路线的开始/结束/中间进入路线​​。

1 个答案:

答案 0 :(得分:1)

这是一个选项:

  1. 通过算法运行每个点以确定从点到用户的距离。
    例如,假设用户位于X(0),Y(0)运行根(Xn) - X(0)) 2 +(Yn - Y(0)) 2

  2. 将距离指定为地理围栏的属性。

  3. 为新属性排序一系列地理围栏。

  4. 将最接近的10个(或根据路径的距离和地理位置彼此接近的区域似乎合理的数字)添加到新阵列。

  5. 注册这10个(或左右)区域。

  6. 记录此过程的最后位置,并将其与用户的当前位置进行比较。如果用户行进一定距离而不是再次开始该过程。

  7. 特别是对于简单的数学运算符,操作系统比同时搜索50个区域要容易得多。