zoukankan      html  css  js  c++  java
  • Java根据经纬度计算两点之间的距离

    public final class DistanceUtils {
     
        /**
         * 地球半径,单位 km
         */
        private static final double EARTH_RADIUS = 6378.137;
     
        /**
         * 根据经纬度,计算两点间的距离
         *
         * @param longitude1 第一个点的经度
         * @param latitude1  第一个点的纬度
         * @param longitude2 第二个点的经度
         * @param latitude2  第二个点的纬度
         * @return 返回距离 单位千米
         */
        public static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) {
            // 纬度
            double lat1 = Math.toRadians(latitude1);
            double lat2 = Math.toRadians(latitude2);
            // 经度
            double lng1 = Math.toRadians(longitude1);
            double lng2 = Math.toRadians(longitude2);
            // 纬度之差
            double a = lat1 - lat2;
            // 经度之差
            double b = lng1 - lng2;
            // 计算两点距离的公式
            double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
                    Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
            // 弧长乘地球半径, 返回单位: 千米
            s =  s * EARTH_RADIUS;
            return s;
        }
     
        public static void main(String[] args) {
            double d = getDistance(116.308479, 39.983171, 116.353454, 39.996059);
            System.out.println(d);
        }
    }
  • 相关阅读:
    -bash: /tyrone/jdk/jdk1.8.0_91/bin/java: cannot execute binary file
    maven依赖包下载地址
    极光推送java代码
    Shiro中session超时页面跳转的处理
    ABAP ole操作1
    OLE导出EXCEL 问题处理
    ABAP ole操作
    ABAP Memory ID
    重装GUI前备份GUI配置
    ABAP编辑器输入中文变成问号
  • 原文地址:https://www.cnblogs.com/xiaofengfree/p/14024588.html
Copyright © 2011-2022 走看看