Android-需要添加100多个地理围栏



我正在开发一个应用程序,用户可以在其中设置多个位置。当用户使用地理围栏进入或离开特定区域时,我可以成功地显示通知。

现在,我需要为所有保存的位置提供监控,可能有数百个甚至更多。我在给定的链接上读到"你可以有多个活动的地理围栏,每个设备用户的限制为100。">

有没有办法为每个设备用户添加超过100个地理围栏?

谢谢!

  1. 拥有一个包含所有要监控的地理围栏的ArrayList+100
  2. 收听位置更新
  3. 当你得到位置更新时,如果你所有地理围栏的ArrayList超过100,删除所有被监控的地理围栏,然后使用harvesine公式计算100个最近的地理围栏:

    public static final double R = 6372.8; // In kilometers
    public static double haversine(double lat1, double lon1, double lat2, double lon2) {
    double dLat = Math.toRadians(lat2 - lat1);
    double dLon = Math.toRadians(lon2 - lon1);
    lat1 = Math.toRadians(lat1);
    lat2 = Math.toRadians(lat2);
    double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
    double c = 2 * Math.asin(Math.sqrt(a));
    return R * c;
    }
    

    这将为您提供两个位置之间的距离。之后,您可以将该距离与地理围栏区域半径进行比较,以了解是否在该区域内。

注意:如果半径以米为单位,则此距离将以公里为单位,然后将haversine方法的结果乘以1000即可转换为米

参考

  1. 开始监控100个最近地理围栏的结果列表

这将允许您始终根据您的位置监控100个最近的地理围栏。能够监控100多个,因为它将始终将监控地理围栏区域更改为100个最近的地理围栏区域。

相关内容

  • 没有找到相关文章

最新更新