Android Location.distanceTo(...) und Lage.bearingTo(...) nicht wieder korrekte Ergebnisse

Ich habe zwar Dutzende Beiträge zu diesem so bitte nicht markiert haben, wird diese als Duplikat, weil das ist es nicht.

Also mit dem folgenden code:

private void testLocation(){
    double currentLat = 51.43376;
    double currentLng = -2.86221;

    double destLat = 51.43503; 
    double destLng = -2.86869;

    final float[] results= new float[3];
    Location.distanceBetween(currentLat, currentLng, destLat, destLng, results);
    Log.d("GPS", "results[0]: " + results[0]);
    Log.d("GPS", "results[1]: " + results[1]);
    Log.d("GPS", "results[2]: " + results[2]);


    Location here = new Location("Current");
    here.setLatitude(currentLat);
    here.setLatitude(currentLng);

    Location dest = new Location("Destination2");
    dest.setLatitude(destLat);
    dest.setLongitude(destLng);


    Log.d("GPS", "Bearing to dest: " + here.bearingTo(dest));
    Log.d("GPS", "Distance to dest: " + here.distanceTo(dest));
}

Ausgabe:

04-19 13:39:55.850: D/GPS(12398): results[0]: 472.2533
04-19 13:39:55.860: D/GPS(12398): results[1]: -72.5882
04-19 13:39:55.860: D/GPS(12398): results[2]: -72.59327
04-19 13:39:55.860: D/GPS(12398): Bearing to dest: 120.83207
04-19 13:39:55.860: D/GPS(12398): Distance to dest: 7893878.5

Die richtigen Werte sein sollten:
Entfernung 472.2533 (Also Ergebnisse[0] korrekt ist).
Lager 285.454 Grad

So, ich weiß nicht, was die Ergebnisse[1] und Ergebnisse[2] geben. Und beide bearingTo und distanceTo geben völlig falsche Antworten.

Dies bedeutet, dass ich muss etwas falsch machen. Kann mir jemand helfen. Generell, alles was ich will zu tun ist, berechnen die Entfernung und die Richtung auf einen Zielpunkt aus einer aktuellen Standort zeigen. Wenn jemand einen besseren Weg, dies zu tun, als die, die oben gezeigt wird, oder weiß was ich falsch mache bitte um Hilfe.

Dank
Adam

InformationsquelleAutor Adam Davies | 2013-04-19
Schreibe einen Kommentar