2017-08-10 6 views
0

私はバージョンMapbox Navigation 0.3.1を使用しています。私はプライベートOSRMサーバからルートを取得しています。 Snap-to-routeなどの機能は正常に機能していますが、最初のステップが終了すると次のステップに進むことはなく、offRouteメソッドが呼び出されています。私は1-2ヶ月のようにここにこだわっています。助けていただければ幸いです。Mapbox Navigation最初の `step`が終了したときに` offRoute() `が呼び出されました

以下、マップボックスナビゲーション実装の私のコードスニペット。

public class MapActivity implements MapboxMap.OnMarkerClickListener 
     ,OnMapReadyCallback, AlertLevelChangeListener, ProgressChangeListener, OffRouteListener 
     ,NavigationEventListener, LocationEngineListener{ 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     fabStartNavigation.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // star Navigation 
       startNavigation(); 
      } 
     }); 
    } 


    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 

     // Remove all navigation listeners being used 
     mNavigation.removeNavigationEventListener(this); 
     mNavigation.removeAlertLevelChangeListener(this); 
     mNavigation.removeProgressChangeListener(this); 
     mNavigation.removeOffRouteListener(this); 

     // End the navigation session 
     mNavigation.endNavigation(); 
     mapView.onDestroy(); 
    } 


    //navigation controller 
    private void startNavigation(){ 
     mNavigation.addNavigationEventListener(this); 
     mNavigation.addAlertLevelChangeListener(this); 
     mNavigation.addOffRouteListener(this); 
     mNavigation.addProgressChangeListener(this); 
     mNavigation.setSnapToRoute(true); 

     /*LocationEngine mLocationEngine = LostLocationEngine.getLocationEngine(this); 
//  mNavigation.setLocationEngine(mLocationEngine);*/ 
     mLocationEngine = LostLocationEngine.getLocationEngine(this); 

     mLocationEngine.setPriority(LocationEnginePriority.HIGH_ACCURACY); 
     mLocationEngine.addLocationEngineListener(this); 
     mLocationEngine.activate(); 

     mNavigation.startNavigation(mPlannedRoute); 
    } 

    // navigation listeners 
    @Override 
    public void onAlertLevelChange(int alertLevel, RouteProgress routeProgress) { 
     switch (alertLevel) { 
      case HIGH_ALERT_LEVEL: 
       break; 
      case MEDIUM_ALERT_LEVEL: 
       break; 
      case LOW_ALERT_LEVEL: 
       break; 
      case ARRIVE_ALERT_LEVEL: 
       break; 
      case NONE_ALERT_LEVEL: 
       break; 
      case DEPART_ALERT_LEVEL: 
       break; 
     } 
    } 

    @Override 
    public void onProgressChange(Location location, RouteProgress routeProgress) { 
    } 

    @Override 
    public void userOffRoute(Location location) { 
    } 

    @Override 
    public void onRunning(boolean running) { 
    } 

    @Override 
    public void onConnected() { 
     mNavigation.setLocationEngine(mLocationEngine); 
     mLocationEngine.requestLocationUpdates(); 
    } 

    @Override 
    public void onLocationChanged(Location location) { 

    } 
} 

答えて

1

これは、あなたは以来修正されました本当に古いバグに実行しているように聞こえます。私のアドバイスは、0.4.0または0.5.0スナップショットにアップグレードすることです。

+1

はい、それはあなたのチームが提供してくれた素晴らしいSDKのおかげで仕事をしました – FARID

関連する問題