最大圆距离是指球面上两个点之间的距离。假设和是两个点的地理经纬度。两个点之间的最大圆距离可以使用以下公式计算:
编写一个程序,提示用户以度为单位输入地球上两个点的经纬度,显示其最大圆距离值。地球的平均半径为6371.01km。注意,你需要使用Math.toRadians方法将度转换为弧度值。公式中的经纬度是相对北边和西边的,使用负数表示相对南边和东边的度数。
package pack2;
import java.util.Scanner;
public class MaxDistance {
public static void main(String[] args) {
try(Scanner input = new Scanner(System.in);) {
System.out.print("Enter point 1 (latitude and longitude) in degrees: ");
double x1 = input.nextDouble(), y1 = input.nextDouble();
System.out.print("Enter point 2 (latitude and longitude) in degrees: ");
double x2 = input.nextDouble(), y2 = input.nextDouble();
System.out.println("The distance between the two points is "+
distance(x1, y1, x2, y2)+" km");
}
}
//最大圆距离
public static double distance(double x1, double y1, double x2, double y2) {
final double RADIUS = 6371.01;
x1 = Math.toRadians(x1);y1 = Math.toRadians(y1);
x2 = Math.toRadians(x2);y2 = Math.toRadians(y2);
return RADIUS * Math.acos(Math.sin(x1) * Math.sin(x2) + Math.cos(x1) *
Math.cos(x2) * Math.cos(y1 - y2));
}
}