首页 > 编程知识 正文

纬度相同经度不同求球面距离,两点间的球面距离公式

时间:2023-05-04 08:28:46 阅读:188440 作者:938

private static final double EARTH_RADIUS = 6378137.0; //private static double getRad(Double d) { return d * Math.PI / 180.0;}/** * 113.5227398,38.38114998;

113.5320502,38.40294996; @Test
public void testJuLi() {
/**石家庄北站 double a = 114.471834;
double b = 38.072762;
double c = 114.449556;
double d = 38.065035;

double distance = EarthTwoPointsDistance(a,b,c,d);//2559.1132System.out.println(distance);}

public double EarthTwoPointsDistance(double lng1, double lat1, double lng2, double lat2) {

double radLat1 = getRad(lat1); double radLat2 = getRad(lat2); double a = radLat1 - radLat2; double b = getRad(lng1) - getRad(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 * 10000) / 10000.0; return s;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。