如何计算GPX文件中的距离?

时间:2017-05-28 00:46:12

标签: java gpx

我正在上初级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");
            }
        }
    }
}

0 个答案:

没有答案