业务需要,有时候需要计算地图上两个之间的距离。这里需要用到弧长公式来计算。
public static double getDistance(double gpsx1, double gpsy1, double gpsx2, double gpsy2) {
double lon1 = (Math.PI / 180) * gpsx1;
double lon2 = (Math.PI / 180) * gpsx2;
double lat1 = (Math.PI / 180) * gpsy1;
double lat2 = (Math.PI / 180) * gpsy2;
// 地球半径
double R = 6371;
double d = R * Math.acos(Math.sin(lat1) * Math.sin(lat2) +
Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1));
return d * 1000;
//返回单位:米
}