1

独自の場所を複製して、目的の方向に数メートルを追加するにはどうすればよいでしょうか?

現在、私の Android アプリは方位角と GPS 位置を取得できます。例として、10 メートルの希望の距離をハードコードしました。

次に、私のアプリは、私が向いている正確に10メートル先に新しい場所を作成する必要があります。

したがって、私の位置が次の場合: 経度 17.537200603552526、緯度 25.70358496181195

北に8メートル、東に2メートル移動させたいです。

新しい経度と緯度は次のようになります。

現在の経度 + 0.00008 、現在の緯度 + 0.00002

勾配と新しい位置を計算するための私のコードの一部を次に示します。

public double[] calculateXYLength(double[] vals, double distance)
{
    double x = vals[0];
    double y = vals[1];

    if (vals[0] < 0)
        {
            x = x * -1;
        }
    if (vals[1] < 0)
        {
            y = y * -1;
        }
    // Log.d("lengths", "K = " + distance + " / (" + x + " + " + y + " )" );
    double k = distance / (x + y);

    // Log.d("lengths", "vals[0]: " + vals[0] + "  vals[1]: " + vals[1]);
    // Log.d("lengths", "x: " + (vals[0] * k) + "  y: " + (vals[1] * k) +
    // "  k: " + k);
    return new double[] { (vals[0] * k), (vals[1] * k) };
}

vals は既に計算した勾配であり、返された結果を使用して新しい位置点に追加することに注意してください。

    Location newPosition = currentPosition
    newPosition.setLongitude(myPosition.getLongitude() + val[0]);
    newPosition.setLatitude(myPosition.getLatitude() + val[1]);

しかし、問題は、これらの 2 つの場所の間の望ましい距離が得られないということです..そして、その理由がわかりません。緯度/経度に目的の距離を追加するにはどうすればよいですか?

ありがとう、ヨハン

4

1 に答える 1

0

経度と緯度の単位はメートルではなく度です。それが問題だと思います。1 度 = 111.12 km

于 2012-12-04T13:35:39.513 に答える