/** * @Desc 根據經緯度座標計算兩點的距離算法<br> * @Author yangzhenlong <br> * @Data 2018/5/9 18:38 */ public class LocationUtils { private static final Double PI = Math.PI; private static final Double PK = 180 / PI; /** * @Description: 根據經緯度計算兩點之間的距離 * * @param lat_a a的經度 * @param lng_a a的維度 * @param lat_b b的經度 * @param lng_b b的維度 * @return 距離 * @author yangzhenlong */ public static String getDistance(double lat_a, double lng_a, double lat_b, double lng_b) { double t1 = Math.cos(lat_a / PK) * Math.cos(lng_a / PK) * Math.cos(lat_b / PK) * Math.cos(lng_b / PK); double t2 = Math.cos(lat_a / PK) * Math.sin(lng_a / PK) * Math.cos(lat_b / PK) * Math.sin(lng_b / PK); double t3 = Math.sin(lat_a / PK) * Math.sin(lat_b / PK); double tt = Math.acos(t1 + t2 + t3); String res = (6366000 * tt) + ""; return res.substring(0, res.indexOf(".")); } }