如何查找应用用户所在地附近的用户

时间:2017-02-19 06:24:18

标签: android mysql location fusedlocationproviderapi

很抱歉没有提供任何示例代码,因为我不知道如何执行此操作。

我正在编写一个使用Firebase作为后端的Android应用程序。 我正在使用fusedlocationapi将当前当前用户位置存储到mysl db。

现在,当用户登录应用程序时,他/她可以选择仅显示半径为25km的用户列表(我们假设为例)。任何人都可以指导我这个功能。

我不想在客户端这样做...有没有办法让它使用mysql

1 个答案:

答案 0 :(得分:0)

您可以使用 Google Maps Android API实用程序库

public class DistanceHelper {
private static final Double RADIUS = 25000.0;

public static double getDistance(LatLng user1, LatLng user2){
    double distance = SphericalUtil.computeDistanceBetween(user1, user2);

    return distance;
}

public static Double getRadius(){
    return RADIUS;
}

public static String formatNumber(double distance) {
    String unit = "m";
    if (distance < 1) {
        distance *= 1000;
        unit = "mm";
    } else if (distance > 1000) {
        distance /= 1000;
        unit = "km";
    }

    return String.format("%4.3f%s", distance, unit);
}

}

 LatLng user1 = new LatLng(currentUser.getLatitude(), currentUser.getLongitude());
            LatLng user2 = new LatLng(otherUser.getLatitude(), otherUser.getLongitude());
            Double distance = DistanceHelper.getDistance(user1, user2);
            if (distance <= DistanceHelper.getRadius()) {
                //code here
            }

我存储用户&#39;使用GPS和LocationManager在FB数据库中的纬度和经度。将计算放在ChildEventListener中以检索半径25km内的获取用户。

但是我觉得这个实现是错误的,因为计算是在客户端完成的,所以如果你有数百万或者十亿的用户,那么你必须在客户端的设备上逐个计算,这可能会导致性能非常低你的应用程序。