Пример #1
0
  // calculates initial course between two airports given through airport ID's
  // values from database class methods must be in radians as this is what is used here
  public static double calcCourBwAir(String id1, String id2) {
    double cord1[] = FPCDatabase.accsAir(id1);
    double cord2[] = FPCDatabase.accsAir(id2);
    double lat1 = cord1[0];
    double lat2 = cord2[0];
    double longD = cord2[1] - cord1[1]; // longD is the difference of longitude 2 - longitude 1
    double y = Math.sin(longD) * Math.cos(lat2);
    double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(longD);

    return Math.atan2(y, x);
  }
Пример #2
0
  // calculates flying distance between the two airports that are given through ID's
  // values from database class methods must be in radians as this is what is used here
  public static double calcFlyDis(String id1, String id2) {
    double r = 6371; // this is KM which means the distance is returned in KM
    double cord1[] = FPCDatabase.accsAir(id1);
    double cord2[] = FPCDatabase.accsAir(id2);
    double lat1 = cord1[0];
    double lat2 = cord2[0];
    double latD = lat2 - lat1;
    double longD = cord2[1] - cord1[1]; // longD is the difference of longitude 2 - longitude 1
    double a =
        Math.sin(latD / 2) * Math.sin(latD / 2)
            + Math.sin(longD / 2) * Math.sin(longD / 2) * Math.cos(lat1) * Math.cos(lat2);

    return r * (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)));
  }