代码实例:
package com.example.wechatpay;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class WeChatPayApplicationTests {
@Test
void contextLoads() {
//长沙
double lat1 = 28.172228; // 第一个点的纬度
double lon1 = 112.995338; // 第一个点的经度
double lat2 = 28.18195; // 第二个点的纬度
double lon2 = 112.99765200000002; // 第二个点的经度
double distance = calculateDistance(lat1, lon1, lat2, lon2);
System.out.println("距离为 " + distance + " 公里");
}
public static double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
int r = 6371; // 地球平均半径,单位:公里
double latDistance = Math.toRadians(lat2 - lat1);
double lonDistance = Math.toRadians(lon2 - lon1);
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double distance = r * c;
return distance;
}
}
结果如果: