Java、最大圆距离

        最大圆距离是指球面上两个点之间的距离。假设\LARGE (x_{1},y_{1})\LARGE (x_{2},y_{2})是两个点的地理经纬度。两个点之间的最大圆距离可以使用以下公式计算:

         编写一个程序,提示用户以度为单位输入地球上两个点的经纬度,显示其最大圆距离值。地球的平均半径为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));
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值