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

但问题是,我没有得到这两个位置之间所需的距离。我不知道为什么。如何在纬度/经度上添加所需的距离?

谢谢,约翰

4

1 回答 1

0

经度和纬度的度量是度而不是米,我认为这是问题所在。1 度 = 111.12 公里

于 2012-12-04T13:35:39.513 回答