Distanzberechnung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Distanzberechnung

    Quellcode

    1. args)
    2. {
    3. int n = StdInput.readInt("Zeilengröße: ");
    4. int x = StdInput.readInt("Spaltengröße: ");
    5. double [][] koordinate = InputKoordinate(n,x);
    6. for (int j = 0; j < koordinate.length; j++)
    7. {
    8. for (int i = 0; i < koordinate[i].length; i++)
    9. System.out.println("Long:" + koordinate[j][0] + " Lat:" + koordinate[j][1] ); // " Distanz: " + distanz(InputKoordinate(n,x))); <-falsch!
    10. }
    11. }
    12. public static double [][] InputKoordinate (int n, int x) // Hier müsste ein zweiter Ort dazu
    13. {
    14. double [][] name = new double [n][x];
    15. for (int j = 0; j < name.length; j++)
    16. {
    17. for (int i = 0; i < name[i].length; i++)
    18. {
    19. name [j][i] = StdInput.readDouble("1. Längengrad, 2. Breitengrad: ");
    20. }
    21. }
    22. return name;
    23. }
    24. public static double[][] distanz(double[][] koordinaten)
    25. {
    26. double laengengrad2 = 49.99; //Die werte sollten nicht fix sein, aber bedingt nur meine unkenntnisse gemacht, sonst in formel nicht lösbar
    27. double breitengrad2 = 12.22;
    28. final double erdradius=6372;
    29. int anzahlOrte = koordinaten.length;
    30. double[][] distanzMatrix = new double[anzahlOrte][anzahlOrte];
    31. for(int i=0; i<anzahlOrte; i++)
    32. {
    33. distanzMatrix[i][i] = 0;
    34. for(int j=1; j<anzahlOrte; j++)
    35. {
    36. double distanz = erdradius *(Math.acos(Math.cos(i)*Math.cos(j)*Math.cos(laengengrad2)*Math.cos(breitengrad2)+Math.cos(i)*Math.sin(j)*Math.cos(laengengrad2)*Math.sin(breitengrad2)+Math.sin(i)*Math.sin(laengengrad2)));;
    37. distanzMatrix[1][1] = distanz;
    38. distanzMatrix[j][i] = distanz;
    39. }
    40. }
    41. return distanzMatrix;
    42. }
    43. }
    Alles anzeigen


    soooo, mein problem, wie folgt.
    ich möchte in ein 2dim.array orte einlesen. wo jeder ort einen längengrad und einen breitengrad hat. d.h. eine zeile definiert einen ort. wie ich oben im code dazu geschrieben habe, benötige ich bei der methode InputKoordinate einen zweiten Ort. Momentan besteht darin nur einer. (explizit: ich weiss nich wie ich das im return zurückgeben, wenn ich im methodenkörper zwei 2DArrays habe).
    die fixen Lä-Br-Grade in methode berechneDistanz fallen demnach auch weg, sobald ich das mit dem 2 Ort habe. das nächste problem wäre dann, wie ich die distanz ausrechnen kann. d.h. von zum beispiel zeile 1 zu zeile 2.

    bei weiteren fragen, gerne fragen, ich versuch mein problem noch genauer zu schildern. der code is vermutlich nich ganz richtig, bin noch blutiger anfänger...sorry demnach
    gruß