美文网首页
java根据经纬度获取距离

java根据经纬度获取距离

作者: 山水风情 | 来源:发表于2017-05-05 10:36 被阅读0次

    <pre>
    // 开发附近的人需要用到计算两点距离。
    // 网上找到一个,是Google给出的一个公式:
    </pre>

    <pre>

    / **

    • @project 项目:< >
    • @class 类名:<DistanceUtil>
    • @author 创建人:< >
    • @date 创建时间:<2017下午1:02:51>
    • @comments: 说明:<距离计算>
      */

    public class DistanceUtil {
    private static final double EARTH_RADIUS = 6378137;//赤道半径
    private static double rad(double d){
    return d * Math.PI / 180.0;
    }

    / **
     * 经纬度获取距离
     * @param lon1 第一个经度
     * @param lat1 第一个纬度
     * @param lon2  
     * @param lat2
     * @return
     */
    
    public static double getDistance(double lon1,double lat1,double lon2, double lat2) {
        double radLat1 = rad(lat1);
        double radLat2 = rad(lat2);
        double a = radLat1 - radLat2;
        double b = rad(lon1) - rad(lon2);
        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;    
       return s/1000;//单位千米
    }
    
    public static void main(String[] args){  
        double distance = getDistance(自己的经度,自己的纬度,对方的经度,对方的纬度);  
        System.out.println("Distance is:"+distance);  
    }  
    

    }

    </pre>

    相关文章

      网友评论

          本文标题:java根据经纬度获取距离

          本文链接:https://www.haomeiwen.com/subject/qcmjtxtx.html