java - 如何计算经度纬度之间的差异?

标签 java latitude-longitude

我需要计算当前位置的经纬度差
和之前的位置。但它以指数格式显示结果,我需要它
米。我不明白如何将其转换为仪表格式。 哪个公式需要那个?

double distance2 = distanceCalculate(lat,lng,locationB.getLatitude(),locationB.getLongitude());
Toast.makeText(this, "distance2=="+Double.valueOf(distance2).longValue() + "meter" , Toast.LENGTH_SHORT).show(); 

double ActualDistance=(Double.valueOf(distance2).longValue())/1E6;
if(ActualDistance<400)
{
    System.out.println("identical");
    Toast.makeText(this,"identical", Toast.LENGTH_LONG).show();
}
else
{
    // send sms
    SmsManager sms = SmsManager.getDefault();
}

public static float distanceCalculate (double lat1, double lng1, double lat2, double lng2 ) 
{
      double earthRadius = 3958.75;
      double dLat = Math.toRadians(lat2-lat1);
      double dLng = Math.toRadians(lng2-lng1);
      double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
      Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
      Math.sin(dLng/2) * Math.sin(dLng/2);
      double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
      double dist = earthRadius * c;

      int meterConversion = 1609;

      return new Float(dist * meterConversion).floatValue();
}

最佳答案

我发现 this在 JavaScript 中,我认为它可以帮助您了解如何做到这一点

关于java - 如何计算经度纬度之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9580327/

相关文章:

java - 当我的电脑刚刚安装x64 jdk7时,如何使用x86 jdk构建代码

java - Struts2 中的转换和验证问题

sas - 在 SAS 中将纬度和经度映射到州/省

r - 计算数据帧 R 中多个距离经纬度

vb.net - 有没有一个公式可以将纬度和经度转换为单个数字?

java - 不同的线程有不同的栈

java - 如何修改List<中的对象?迭代时扩展 MyObject>?

mysql - 从自定义多边形 MySQL 进行纬度经度搜索

java - 如何计算半径内的最大和最小纬度和经度值?

java - JSF,将空值注册到绑定(bind)实例