2012-12-04 147 views
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]); 

但事情是,我沒有得到這兩個位置之間所需的距離..我不明白爲什麼。如何在緯度/經度上添加所需的距離?

感謝, 約翰

+0

解決方法在這裏找到:http://stackoverflow.com/questions/2187657/calculate-second-point-knowing-the-starting-point-and-distance – leu2tm

回答

0

經度和緯度的措施是不度米,我覺得這是問題。 1度= 111.12公里

+0

是啊我重新考慮,但如何我可以將它轉換成地理座標嗎?因爲我看不到我會如何找到我的新地點。 – leu2tm

+0

是的,我發現了另一個類似的問題。 http://stackoverflow.com/questions/2187657/calculate-second-point-knowing-the-starting-point-and-distance – leu2tm

+0

好的,你有沒有解決這個呢?如果您還有其他問題,我也正在使用谷歌地圖+ Android中的Directions,希望我們可以互相幫助。 –