您的位置:首页 > 编程语言 > Java开发

java和mysql中计算两个经纬度距离的方法

2016-08-19 18:40 323 查看
lat1:纬度1      lat2:纬度2
lng1:经度1      lng2:经度2

/** java */
private double getDistance(double lng1, double lat1, double lng2, double lat2) {  
        // 地球半径
        double radius = 6378137;
        lat1 *= Math.PI/180.0;
        lat2 *= Math.PI/180.0;
        double lat = lat1-lat2;
        double lng = (lng1-lng2)*Math.PI/180.0;
        double tlat = Math.sin(lat / 2.0);
        double tlng = Math.sin(lng / 2.0);
        return 2*radius* Math.asin(Math.sqrt(tlat*tlat+Math.cos(lat1)*Math.cos(lat2)*tlng*tlng));  
}
<pre name="code" id="best-content-1382281536" class="best-text mb-10" style="margin-top:0px; margin-bottom:10px; padding:0px; font-family:arial,'courier new',courier,宋体,monospace; white-space:pre-wrap; word-wrap:break-word; color:rgb(51,51,51); font-size:14px; line-height:24px; background-color:rgb(241,254,221)">----mysql
select  round(6378137*2*asin(sqrt(pow(sin((lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)*pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2))),2);


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: