java计算两个经纬度之间的距离

/**
     * 计算点 是否在一个固定点的半径范围内
     * @2016年10月20日
     * @param a  经度1 已知
     * @param b   纬度1 已知
     * @param x  经度2
     * @param y  纬度2
     * @param r  半径(米)比较的半径距离
     * @return  object[0]是否在已知的范围了
     */
    public static Object[] getManyPoint(double a,double b,double x,double y,double r){
        Object[] obj = new Object[2];
        double pk = 180 / 3.14169;
        double a1 = a/pk;
        double a2 = b/pk;
        double b1 = x/pk;
        double b2 = y/pk;
        double t1 = Math.cos(a1) * Math.cos(a2) * Math.cos(b1) * Math.cos(b2);  
        double t2 = Math.cos(a1) * Math.sin(a2) * Math.cos(b1) * Math.sin(b2);  
        double t3 = Math.sin(a1) * Math.sin(b1);  
        double tt = 6366000 * Math.acos(t1 + t2 + t3);
        if(r >= tt){
            obj[0] = true;
        }else{                
            obj[0] = false;
        }
        obj[1] = tt;
        return obj;
    }

 

posted @ 2017-10-27 10:27  冬天不眠  阅读(958)  评论(0编辑  收藏  举报