您如何克隆自己的位置,然后向所需方向添加一些额外的米?
现在我的 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]);
但问题是,我没有得到这两个位置之间所需的距离。我不知道为什么。如何在纬度/经度上添加所需的距离?
谢谢,约翰