如何通过传递位置附近的当前位置,半径和纬度来过滤我的附近位置

Nee*_*raj -4 java android location google-maps geolocation

输入:

  1. 当前位置lat lon
  2. 半径
  3. 拉特隆附近的名单

要求输出:

从我当前位置提供半径的纬度列表.

有人能给我实现它的方法吗?

我有以下代码来检查传递的位置是否在传递的半径范围内...我们如何优化更多?我不是每次都使用for循环检查我的所有位置

public static boolean pointIsInCircle(PointF pointForCheck, PointF center,
        double radius) {
    if (getDistanceBetweenTwoPoints(pointForCheck, center) <= radius)
        return true;
    else
        return false;
}


public static double getDistanceBetweenTwoPoints(PointF p1, PointF p2) {
    double R = 6371000; // m
    double dLat = Math.toRadians(p2.x - p1.x);
    double dLon = Math.toRadians(p2.y - p1.y);
    double lat1 = Math.toRadians(p1.x);
    double lat2 = Math.toRadians(p2.x);

    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.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double d = R * c;

    return d;
}
Run Code Online (Sandbox Code Playgroud)

Sub*_*xmi 5

使用地理围栏.地理围栏是现实世界地理区域的虚拟边界.甲地理围栏可以被动态地产生,如在周围商店或点位置的半径.或者地理围栏可以是预定义的边界集,例如学校出勤区或邻域边界.定制数字化地理围栏也在使用中.

按照链接 简单的例子.当基于位置的服务(LBS)用户的位置感知设备进入或退出地理围栏时,设备接收生成的通知.此通知可能包含有关设备位置的信息.

与儿童定位服务一起使用的地理围栏可以在儿童离开指定区域时通知父母.[