2011-09-27 47 views
0

我試着用BearingTo(),但我不知道如何使用它。如果我面向建築物和朝南方向,myLocation.bearingTo(BuildingLocation)會給我0º,如果我面向建築物和東向,則給我90º,如果我面向建築物和朝南方向,則給予-180º。然後bearingTo不適合我的需求。有GPS位置和我的GPS位置,¿如何從我的位置計算方向(從北向0-360º)到位置?

我必須這樣做,因爲我需要計算的時候,手機攝像頭是面向對象...

回答

3

嘗試此鏈接: http://www.movable-type.co.uk/scripts/latlong.html

Edit--這將是例如,使用地點或獲取長期/緯度在其他方面

Location destination; 
    Location from; 

    double dLon = Math.abs(destination.getLongitude()-from.getLongitude()); //Delta Longitude 

    double y = Math.sin(dLon) * Math.cos(destination.getLatitude()); 
    double x = Math.cos(from.getLatitude())*Math.sin(destination.getLatitude()) - 
      Math.sin(from.getLatitude())*Math.cos(destination.getLatitude())*Math.cos(dLon); 
    double brng = Math.atan2(y, x); 
    double brngdegrees = Math.toDegrees(brng); 
+0

+1不錯的鏈接... –

+0

不錯的鏈接,但我不知道如何做到這一點,這解釋太蒙克復雜,我。我不明白如何去做我需要的東西:S。有人可以幫我做嗎? – NullPointerException