我正在上初级CS课程,我的家庭作业的一部分是编写GPX文件阅读器,允许用户从菜单中选择一个选项来显示总距离,海拔增益和损失等等。我我想出了如何让用户输入文件以及如何创建菜单,但我不确定如何读取文件以获取lat。而且很长。点。根据我的理解(纠正我,如果我错了),你取第一个坐标并计算第一个坐标和下一组坐标之间的距离,然后继续,直到你到达文件中的最后一个坐标。 / p>
然而,我在从文件本身拉出坐标时遇到了麻烦,这就是我现在正在使用的代码,这样你们就可以了解我的技能水平。我知道它可能完全关闭,但我非常感谢你的帮助,谢谢!!
public static void distance(Scanner input) {
while (input.hasNextLine()) {
String longcheck = input.nextLine();
if (longcheck.equals("lon")) {
double lon1 = input.nextDouble();
double lat1 = input.nextDouble();
下一步是我必须计算的距离(我已经测试了另一个任务,它运行正常)
lat1 = Math.toRadians(lat1);
lon1 = Math.toRadians(lon1);
lat2 = Math.toRadians(lat2);
lon2 = Math.toRadians(lon2);
double longdis = lon1 - lon2; //calculating longitudinal difference
double angudis = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(longdis);
angudis = Math.acos(angudis); //converted back to radians
angudis = angudis * 6372.795; //multiplied by the radius of the Earth
System.out.println("The distance between the two points is " + angudis + "kilometers");
}
}
}
}