2017-07-17 57 views
0

我在這裏有這個小代碼片段。我正在尋找的是獲取用戶的當前GPS行走方向(方位),然後獲得相反的行走方向。計算當前的android GPS行走方向的相反

我似乎錯過了一些重要的信息,因爲代碼似乎主要工作時,當我走向東北和西方,但失敗時,我走南。

任何想法如何解決我的代碼段?

private static Location lastValidLocation; 

private float getOppositeGPSMovementDirection(Location lastLocation){ 

    float bearing; 
    if (!lastLocation.hasBearing){ 
     //Use bearing of the last Location with a valid bearing. 
     bearing = lastValidLocation.getBearing(); 
    }else{ 
     lastValidLocation = lastLocation; 
     bearing = lastLocation.getBearing(); 
    } 

    //Calculate backwards direction 
    int direction = (int) (bearing - 180); 
    direction = direction<0?direction*-1:direction; 

    return direction; 
} 

回答

1

你的數學是錯誤的。如果你在10度,你對面的是190你的數學會給它170.正確的數學:

direction = (bearing + 180) % 360; 

基本上,你的前提是,你可以通過多種-1負角度以獲得正確的角度是錯誤的。

+0

你是完全正確的! – Markus