xiaohundun
2022-12-01 15:21:55 +08:00
两点间直线距离,是这种么?
public static Double distance(String lat, String lng, String lat2, String lng2) {
if (StringUtils.isBlank(lat) || StringUtils.isBlank(lng) || StringUtils.isBlank(lat2) || StringUtils.isBlank(lng2)) {
return 0d;
}
double d = 6378.138 * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin((Double.parseDouble(lat) * Math.PI / 180 - Double.parseDouble(lat2) * Math.PI / 180) / 2), 2) + Math.cos(Double.parseDouble(lat) * Math.PI / 180) * Math.cos(Double.parseDouble(lat2) * Math.PI / 180) * Math.pow(Math.sin((Double.parseDouble(lng) * Math.PI / 180 - Double.parseDouble(lng2) * Math.PI / 180) / 2), 2)));
BigDecimal bigDecimal = new BigDecimal(d);
return bigDecimal.setScale(2, RoundingMode.HALF_UP).doubleValue();
}