4

私はこれについて何十もの投稿を調べてきたので、そうではないので、これを重複としてフラグ付けしないでください.

したがって、次のコードを実行します。

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));
}

出力は次のとおりです。

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

正しい値は次のとおりです: 距離 472.2533 (結果 [0] は正しい)。方位 285.454 度

したがって、結果[1]と結果[2]が何を示しているのかわかりません。そして、 BearingTo と distanceTo の両方が完全に間違った答えを出しています。

これは、私が何か間違ったことをしているに違いないことを意味します。誰でも助けることができます。通常、私がやりたいことは、現在の地点から目的地までの距離と方向を計算することだけです。上記の方法よりも良い方法がある場合、または私が間違っていることを知っている場合は、助けてください。

ありがとうアダム

4

2 に答える 2

1

自分で計算した方位は正しいですか? results[2]: -72.59327は 287.40673 度に相当します。

于 2013-04-19T13:57:58.253 に答える