2016-04-20 183 views
0

美好的一天。我被告知要創建一個應用程序,當攝像機距目的地100米遠時,相機表面上會顯示一些標誌。我做到了,現在的問題是,如果我倒退到建築物,標誌仍然會出現在100米遠的地方,相機無法猜測我是否面對正確的公司。所以我想了解兩個位置的方位和程度android.The想法是有我的位置和目標位置之間的角度,只要角度達到0.0,這意味着用戶面對正確的位置,所以我可以顯示它。但看着LOCATION類代碼與bearingTo方法我不能真正瞭解它是什麼給回來的。我的問題是我如何實現這樣的邏輯?bearingTo給我角度我應該從我的當前位置旋轉到目的地位置fa直接或者它給出了不同的邏輯?如果是這樣,我應該使用什麼?獲取學位從當前位置到目標位置Android

+0

它會幫助我們,如果你格式化你的問題更具可讀性。 – jmugz3

+0

我只需要用戶面對手機相機到經度和緯度的建築...... –

回答

1

bearingTo()方法只是返回兩個位置之間的方位(指南針方向):您調用它的位置和您給出的位置作爲參數。實際上,Location對象或LocationManager中沒有任何關於您設備方向的信息,即相機指向的位置。

您需要使用指南針(磁力計與加速計一起)來了解設備相對於地球表面的方向,即瞭解相機指向的位置。

所以用bearingTo()你可以計算出「正確的方向」,用羅盤獲得「當前方向」,然後你可以比較這兩個方向,甚至告訴用戶如果他/她應該指向哪個方向在一些特定的建築物。 (只需正確處理359.999 ... 0.000度的邊界。)

獲得指南針標題有點精細,所以最好嘗試找到一個很好的教程。 Here's is one decent implementation。或者您可以深入瞭解Android的傳感器和一些矩陣計算,並通過the Android documentation進行播放。

或者你當然可以搜索堆棧溢出older discussions about getting a compass heading並找到例如this code snipped from a mathematician