zoukankan      html  css  js  c++  java
  • 根据经纬度算出两个位置之间的距离

    package com.sandu.mega.common.kit;
    
    public class DistanceKit {
        //地球平均半径
        private static final double EARTH_RADIUS = 6378137;
        //把经纬度转为度(°)
        private static double rad(double d){
           return d * Math.PI / 180.0;
        }
        
        /**
         * 根据两点间经纬度坐标(double值),计算两点间距离,单位为米
         * @param lng1  第一个人的经度
         * @param lat1   第一个人的纬度
         * @param lng2   第二个人的经度
         * @param lat2    第二个人的纬度
         * @return
         */
        public static double getDistance(String lng1, String lat1, String lng2, String lat2){
           double radLat1 = rad(Double.valueOf(lat1));
           double radLat2 = rad(Double.valueOf(lat2));
           double a = radLat1 - radLat2;
           double b = rad(Double.valueOf(lng1)) - rad(Double.valueOf(lng2));
           double s = 2 * Math.asin(
                Math.sqrt(
                    Math.pow(Math.sin(a/2),2) 
                    + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)
                )
            );
           s = s * EARTH_RADIUS;
           s = Math.round(s * 10000) / 10000;
           return s;
        }
        
    }
        
  • 相关阅读:
    栈的实现方式
    复合和继承
    循环链表和双向链表
    抽象类和接口
    private构造器和单例模式
    内部类
    关于初始化和清理
    多态的理解
    幾個小知識
    Youth
  • 原文地址:https://www.cnblogs.com/suruozhong/p/6811616.html
Copyright © 2011-2022 走看看