package com.jqyd.app; public class GetDistance { public static final double R = 6371004; /** * 根据给定的两个经纬度计算两地之间的距离,单位km * @param lon1 经度1 * @param lat1 纬度1 * @param lon2 经度2 * @param lat2 纬度2 * @return 两地距离 */ public static double getDistance(double lon1, double lat1, double lon2, double lat2) { double x = changeToRad(lon1); double y = changeToRad(lat1); double a = changeToRad(lon2); double b = changeToRad(lat2); double rad = Math.acos(Math.cos(y) * Math.cos(b) * Math.cos(x - a) + Math.sin(y) * Math.sin(b)); if (rad > Math.PI) rad = Math.PI * 2 - rad; return R * rad; } /** * 将角度转化为弧度 * @param angle 角度 * @return 弧度 */ public static double changeToRad(double angle) { return angle / 180 * Math.PI; } }