2012-09-18 20 views
0

我想開發一個應用程序,首先提交一個對象位置「With Direction」,以便在稍後的時間再次在這條街上移動時「在相同的方向」可以檢測到這種情況,並告訴用戶您處於與該物體相同的方向,並且距離xyz米遠。確定對象是否在同一個方向android

對象位置和距離將使用位置提供商服務天氣檢測到,它是GPS或其他位置。

現在我的問題是方向,如何提交對象的方向,以便後來我可以知道我是在同一個街道的方向。

在此先感謝

+0

您的問題是否正在獲取方向?如果是這樣:http://developer.android.com/reference/android/hardware/SensorManager.html - >閱讀getOrientation()。如果問題是存儲方向,那麼只需讀取Android中的SQLite數據庫即可。將其存儲在數據庫中,然後將當前位置和方向與db –

+0

中的數據進行比較,我的問題是獲取與街道方向相關的方向。這個獲得的方向是指什麼?關於什麼?如果一個點x在北方同一方向,而另一個方向在南方同一方向呢? – MSaudi

+0

所以基本上你不需要一個精確的方向(如360度),而是信息,如果用戶指向街道的這一端或相反,對不對?我能想到的唯一問題就是獲得街道兩端的座標。因爲數學(兩個地點之間的連線)非常簡單。關於這條線也獲得用戶方向 –

回答

1

找到兩個點之間的方向,你可以使用下列之一:

1,如果使用定位對象:

Location initialPoint = new Location(""); 
initialPoint.setLatitude(initialLatitude); 
initialPoint.setLongitude(initialLongitude); 

Location finalPoint = new Location(""); 
finalPoint .setLatitude(finalLatitude); 
finalPoint .setLongitude(finalLongitude); 

float direction = initialPoint.bearingTo(finalPoint); 

2,使用靜態定位方法

private float results2[] = new float[2]; 
Location.distanceBetween(initialLatitude, initialLongitude, finalLatitude, finalLongitude, results); 
float direction = reasults[1]; 

Regards

+0

這個獲得的方向是指什麼?關於什麼? 如果一個點x在北方的方向相同而南方的另一個方向相同則該怎麼辦? – MSaudi

+0

正如變量的名稱所示,它從初始點返回到最終點的方向。從文檔中:「返回在真實的北方沿着這個位置和給定位置之間的最短路徑行進時的近似初始方位,使用WGS84橢球定義最短路徑,幾乎相反的位置可能產生無意義的結果「。 – Luis

相關問題