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

时间:2014-06-30 06:06:14

标签: java android google-maps geolocation location

输入:

  1. 当前位置lat lon
  2. 半径
  3. 靠近lat lon的列表
  4. 必需输出:

      

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

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

    我有以下代码来检查传递的位置是否在传递的半径范围内...我们如何优化更多? 我不是每次都使用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;
    }
    

2 个答案:

答案 0 :(得分:5)

使用Geo-Fence geo-fence 是真实世界地理区域的虚拟边界。可以动态生成地理围栏 - 如在商店或点位置周围的半径中。或者地理围栏可以是预定义的边界集,例如学校出勤区或邻域边界。自定义数字化地理围栏也在使用中。

点击链接simple example。  当基于位置的服务(LBS)用户的位置感知设备进入或退出地理围栏时,设备接收生成的通知。此通知可能包含有关设备位置的信息。

与子位置服务一起使用的

Geofencing 可以在孩子离开指定区域时通知家长。[

答案 1 :(得分:2)

看起来你想到附近的地方,所以你可以转到: https://developers.google.com/places/documentation/search#PlaceSearchRequests 在实施本文时,您可以随意提出任何疑问