使用经纬度计算 2 点之间的距离
```java
/**
* 根据经纬度计算两点之间的距离 (m)
*/
public class LBSUtils {
public static final double EARTH_RADIUS = 6378137; // 地球的半径 (m)
/**
* 根据经纬度计算两点之间的距离 (m)
*
* @
param lng1 位置 1 的经度
* @
param lat1 位置 1 的纬度
* @
param lng2 位置 2 的经度
* @
param lat2 位置 2 的纬度
* @
return 返回距离
*/
public static double getDistance(double lng1, double lat1, double lng2, double lat2) {
double radLat1 = radian(lat1);
double radLat2 = radian(lat2);
double a = radLat1 - radLat2;
double b = radian(lng1) - radian(lng2);
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+ Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 100) / 100.0;
return s;
}
private static double radian(double d) {
return d * Math.PI / 180.0;
}
public static void main(String[] args) {
double lat1 = 39.964145, lng1 = 116.384996, lat2 = 39.964533, lng2 = 116.385243;
double distance = LBSUtils.getDistance(lat1, lng1, lat2, lng2);
System.out.println("Distance: " + distance + " 米");
}
}
```