关闭

java经纬度换算距离,date换算字符串工具方法

374人阅读 评论(0) 收藏 举报
分类:

java经纬度换算距离,Date换算字符串工具方法

经纬度换算距离

public static String getDistanceFromLL(double lon1, double lat1, double lon2,
            double lat2) {
        double ew1, ns1, ew2, ns2;
        double dx, dy, dew;
        double distance;
        // 角度转换为弧度
        ew1 = lon1 * Constant.DEF_PI180;
        ns1 = lat1 * Constant.DEF_PI180;
        ew2 = lon2 * Constant.DEF_PI180;
        ns2 = lat2 * Constant.DEF_PI180;
        // 经度差
        dew = ew1 - ew2;
        // 若跨东经和西经180 度,进行调整
        if (dew > Constant.DEF_PI)
            dew = Constant.DEF_2PI - dew;
        else if (dew < -Constant.DEF_PI)
            dew = Constant.DEF_2PI + dew;
        dx = Constant.DEF_R * Math.cos(ns1) * dew; // 东西方向长度(在纬度圈上的投影长度)
        dy = Constant.DEF_R * (ns1 - ns2); // 南北方向长度(在经度圈上的投影长度)
        // 勾股定理求斜边长
        distance = Math.sqrt(dx * dx + dy * dy);
        return trans(distance);
    }

    private static String trans(double distance) {
        boolean isBig = false; // 是否为大于等于1000m
        if (distance >= 1000) {
            distance /= 1000;
            isBig = true;
        }
        return (new DecimalFormat(".00").format(distance))
                + (isBig ? "km" : "m");
    }

Constant.java

// DataFormatUtils
     public static double DEF_PI = 3.14159265359; // PI  
     public static double DEF_2PI = 6.28318530712; // 2*PI  
     public static double DEF_PI180 = 0.01745329252; // PI/180.0  
     public static double DEF_R = 6370693.5; // radius of earth  

字符串换算Date

/**
* 字符串转换成日期
* @param str
* @return date
*/
public static Date StrToDate(String str) {

   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   Date date = null;
   try {
    date = format.parse(str);
   } catch (ParseException e) {
    e.printStackTrace();
   }
   return date;
}

Date换算成时间

/**
   * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)<br>
   * 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br>
   * @param time Date 日期<br>
   * @param x int 任意整数如:1<br>
   * @return String 字符串<br>
   */
public static String dateToString(Date time,int x){
    SimpleDateFormat formatter;
    formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a");
    String ctime = formatter.format(time);

    return ctime;
}

参考资料

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34122次
    • 积分:1260
    • 等级:
    • 排名:千里之外
    • 原创:93篇
    • 转载:0篇
    • 译文:2篇
    • 评论:4条
    文章分类
    最新评论