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

原创 2015年07月09日 10:10:57

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;
}

参考资料

Java实现经纬度格式转化

Java工具类目录首先了解经纬度的几种格式: 1.) ddd.ddddd °【度 . 度 格式】的十进制小数部分(5位) 2.) ddd°mm.mmm’ 【度 . 分 . 分 格式】的十进制小数...

java工具类(六)根据经纬度计算距离

Java实现根据经纬度计算距离 在项目开发过程中,需要根据两地经纬度坐标计算两地间距离,所用的工具类如下: Demo1: public static double getDistatce(dou...

GPS 的经纬度换算成距离的代码(转载)

 干编程这个就是好,东西可以分享出来,然后大家都贴来贴去的,还好我是android手机,估计代码人家系统里面都有有了,只要调用一个函数就可以了。 谢谢大家的分享啊,如下代码来自互联...

经纬度互换、换算成米、两点的经纬度计算两点间的距离

经纬度互换度(DDD):E 108.90593度    N 34.21630度    如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒?转换方法是将1...

GPS坐标转换经纬度及换算方法

地形图坐标系:我国的地形图采用高斯-克吕格平面直角坐标系。在该坐标系中,横轴:赤道,用Y表示;纵轴:中央经线,用X表示;坐标原点:中央经线与赤道的交点,用0表示。赤道以南为负,以北为正;中央经线以东为...

GPS经纬度的表示方法及换算

想要认识GPS中的经纬度,就必须先了解GPS,知道经纬度的来源:   1. GPS系统组成   GPS是 GloabalPositioning System 的简称,意为全球定位系统,主要由地面的...

经纬度到屏幕像素点的换算方法

转自http://blog.csdn.net/hanghwp/archive/2008/11/24/3361900.aspx 经纬度到屏幕像素点的换算方法 最近做的项目中有个机能:由给出的经纬...

GPS坐标转换经纬度及换算方法

原文出处:http://blog.sina.com.cn/s/blog_7b0807af0101lh3n.html GPS坐标和经纬度的算法和概率不太一样,但是我们可能会将他们互通起来用,下面先...

GPS经纬度的表示方法及换算

GPS点坐标的表达方式有两种: dddmm.mmmm(度分格式):ddd表示度;mm.mmmm表示分,其中小数点前表示分的整数部分,小数点后表示分的小数部分; ddd.mm.ss(度.分.秒):d...

GPS坐标转换经纬度及换算方法

地形图坐标系:我国的地形图采用高斯-克吕格平面直角坐标系。在该坐标系中,横轴:赤道,用Y表示;纵轴:中央经线,用X表示;坐标原点:中央经线与赤 道的交点,用0表示。赤道以南为负,以北为正;中央经线以东...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java经纬度换算距离,date换算字符串工具方法
举报原因:
原因补充:

(最多只允许输入30个字)