前言
之前做过的很多项目中都有涉及到根据经纬度计算两点之间的距离,然后做排序。这个场景在很多外卖App或者小程序上经常看到,例如距离2km,<100m等等。
工具类1
public class LocationUtil {
/**
* 地球半径,单位 km
*/
private static final double EARTH_RADIUS = 6371;
private LocationUtil() {
}
/**
* 根据经纬度,计算两点间的距离
*
* @param longitude1 第一个点的经度
* @param latitude1 第一个点的纬度
* @param longitude2 第二个点的经度
* @param latitude2 第二个点的纬度
* @return 返回距离 单位米
*/
public static int 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