计算两个经纬度的距离

GPS设备得到的经(dddmm.mmmm)纬(ddmm.mmmm)需要将分转换为度
在线转换工具地址:http://www.storyday.com/wp-content/uploads/2008/09/latlung_dis.html

以下参数的经纬度,单位为度

  /** 计算两个经纬度的距离
 * @param lat1
 *            维度1
 * @param lon1
 *            经度1
 * @param lat2
 *            维度2
 * @param lon2
 *            经度2
 * @return 距离(单位米)
 */
double distance(double lat1, double lon1, double lat2, double lon2) {
    double theta = lon1 - lon2;
    double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))
            + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
    dist = Math.acos(dist);
    dist = rad2deg(dist);
    double miles = dist * 60 * 1.1515;
    // 转换成公里,乘以1.609344
    // LogUtil.info("distance=" + miles * 1.609344 * 1000+"(m)");// 英里
    return miles * 1.609344 * 1000/* miles */;
}

// 将角度转换为弧度
static double deg2rad(double degree) {
    return degree / 180 * Math.PI;
}

// 将弧度转换为角度
static double rad2deg(double radian) {
    return radian * 180 / Math.PI;
}

测试代码:

public static void main(String args[]) { GPSUtil gpsUtil = new GPSUtil(null); System.out.println(gpsUtil.distance(22.97940, 113.89693, 22.97950, 113.89716)); //结果为26.037684117133875 }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画...
    Akitas阅读 5,043评论 0 2
  • 知识科普 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的 假想线),...
    Yumazhiyao阅读 8,073评论 1 3
  • 别害怕单身的生活,那种状态反而是开阔的,能听见自己内心的声音,情绪不受干扰,甚至可以由着自己任性一把。你会有无限的...
    坑神驾到阅读 1,810评论 0 0
  • 作者:浅戈易 这里,洛殇与你相随。 府邸中的佳丽,满袖清风 谁撒手人寰,卸下了囊装。 青萍刺芒,耀光里的迤逦, 我...
    浅戈易阅读 1,769评论 0 1
  • 今天用mychrome自定安装Google Chrome浏览器,安装完成之后发现无法将其设为默认浏览器。 问题现象...
    禾白小三飘阅读 4,487评论 0 0

友情链接更多精彩内容