你如何克隆你自己的位置,然後向所需的方向添加一些額外的米?設置地理位置的緯度和經度
現在我的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]);
但事情是,我沒有得到這兩個位置之間所需的距離..我不明白爲什麼。如何在緯度/經度上添加所需的距離?
感謝, 約翰
解決方法在這裏找到:http://stackoverflow.com/questions/2187657/calculate-second-point-knowing-the-starting-point-and-distance – leu2tm