【问题标题】:Can't find distance between two points找不到两点之间的距离
【发布时间】:2017-05-29 06:08:53
【问题描述】:

我有一个关于位置的问题,我的程序将应用程序的位置保存到 firebase 数据库中,没关系,我需要将我的位置与数据库中的位置进行比较,我使用 userData 对象将坐标保存到其中:

Location dbLocation = new Location("dbLocation");
dbLocation.setLatitude(userData.lat);
dbLocation.setLongitude(userData.lng);

我从 GPSTracker 服务获取我的位置坐标:

Location crntLocation = new Location("crntLocation");
crntLocation.setLongitude(gpstracker.getLongitude());
crntLocation.setLatitude(gpstracker.getLatitude());

我需要比较这个坐标并找出两个位置之间的距离

float distanceBetween = crntLocation.distanceTo(dbLocation);

但它不起作用,我不知道为什么,请您帮忙解决它吗?

【问题讨论】:

标签: java android location


【解决方案1】:

获取当前纬度,经度的位置后,您只需检查与原点(纬度,经度)的距离

float[] results = new float[1];
 Location.distanceBetween(currentlatitude, currentlongitude, originLat, originLon, results);
float distanceInMeters = results[0];

【讨论】:

    【解决方案2】:

    希望对你有帮助

    public static double distance(Location start, Location end) {
        try {
            double distance = start.distanceTo(end);
            DecimalFormat decimalFormat = new DecimalFormat("#.#");
            DecimalFormatSymbols custom = new DecimalFormatSymbols();
            custom.setDecimalSeparator('.');
            decimalFormat.setDecimalFormatSymbols(custom);
            double distanceFormated = 
            Double.parseDouble(decimalFormat.format(distance));
            return distanceFormated;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2011-07-10
      • 1970-01-01
      • 2012-09-01
      • 2011-08-08
      • 1970-01-01
      • 2019-01-23
      • 2012-07-17
      • 1970-01-01
      相关资源
      最近更新 更多