2017-07-16 4 views
0

Mapbox Navigationを実装していて、最近は0.3.1から0.4.0-SNAPSHOTへのナビゲーションを更新したいと思っています。onProgressChange()は、私はコードを変更していませんが。マップボックスのナビゲーション0.4.0-SNAPSHOTが使用されているときに `onProgressChange()`が起動しない

注:onLocationChangedは両方の場合に機能します。

EDIT

注:その速度は0.0ではなく、0.4.0-SNAPSHOT

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

は、あなたが受けている位置情報の更新が持っていることは可能ですが、まだonProgressChange()を発射0.3.1速度値はありませんか?速度値が0以下の場合、onProgressChangeは呼び出されません。これが問題でない場合は、追加の情報とコードスニペットがこれをトラブルシューティングするのに役立ちます。

関連する問題