根据两点间经纬度坐标(double值),计算两点间距离,单位为米_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 根据两点间经纬度坐标(double值),计算两点间距离,单位为米

根据两点间经纬度坐标(double值),计算两点间距离,单位为米

 2018/7/9 12:20:38  zysnba  程序员俱乐部  我要评论(0)
  • 摘要://地球平均半径privatestaticfinaldoubleEARTH_RADIUS=6378137;//把经纬度转为度(°)privatestaticdoublerad(doubled){returnd*Math.PI/180.0;}/***网羽中心39.9600510000,116.5104500000*电子城39.9809880000,116.4972310000*根据两点间经纬度坐标(double值),计算两点间距离,单位为米*@paramlng1116
  • 标签: 经纬
//地球平均半径 
    private static final double EARTH_RADIUS = 6378137; 
    //把经纬度转为度(°) 
    private static double rad(double d){ 
       return d * Math.PI / 180.0; 
    }
/** 
  * 网羽中心  39.9600510000,116.5104500000
  * 电子城    39.9809880000,116.4972310000
     * 根据两点间经纬度坐标(double值),计算两点间距离,单位为米 
     * @param lng1  116.4972310000
     * @param lat1  39.9809880000
     * @param lng2  116.5104500000
     * @param lat2  39.9600510000
     * @return 
     */ 
    public static double getDistance(double lng1, double lat1, double lng2, double lat2){ 
       double radLat1 = rad(lat1); 
       double radLat2 = rad(lat2); 
       double a = radLat1 - radLat2; 
       double b = rad(lng1) - rad(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; 
       return s; 
    }



//    public static void main(String[] args) {
// System.out.println(getDistance(116.4972310000, 39.9809880000, 116.5104500000, 39.9600510000));
// }
上一篇: java根据百度url获取真正的网页地址 下一篇: 没有下一篇了!
发表评论
用户名: 匿名