计算两个坐标点之间的距离
public class LocationUtils {
public static double getDistance(double lng1, double lat1, double lng2, double lat2) {
double radLat1 = Math.toRadians(lat1);
double radLat2 = Math.toRadians(lat2);
double a = radLat1 - radLat2;
double b = Math.toRadians(lng1) - Math.toRadians(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)));
double EARTH_RADIUS = 6378.137;
s = s * EARTH_RADIUS;
s = Math.round(s * 1000);
return s;
}
public static void main(String[] args) {
double dist1 = getDistance(106.628647, 26.644210, 106.630753, 26.642344);
System.out.println("两点相距:" + dist1 + "米");
}
}
相关网站
两个坐标位置计算
百度地图获取经纬度
高德坐标计算
public class DistanceCalculateUtil {
public static int getDistance(double lat1, double lon1, double lat2, double lon2) {
double radLat1 = Math.toRadians(lat1);
double radLat2 = Math.toRadians(lat2);
double dLat = Math.toRadians(lat2 - lat1);
double dLon = Math.toRadians(lon2 - lon1);
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(radLat1) * Math.cos(radLat2) *
Math.sin(dLon / 2) * Math.sin(dLon / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return (int) Math.round(6371000 * c);
}
}