2017-08-12 94 views
0

目前我被困在爲MapBox sdk創建基本導航。我已經成功查看地圖,但無法顯示導航功能,因爲我很難找到任何教程或易於理解的MapBox文檔指南,任何幫助將不勝感激,並提前致謝。在這裏我包括我的活動。MapBox導航

活動

public class MapNavigationActivity extends AppCompatActivity implements OnMapReadyCallback, 
     MapboxMap.OnMapClickListener, ProgressChangeListener, NavigationEventListener, MilestoneEventListener, OffRouteListener { 

    private static final int BEGIN_ROUTE_MILESTONE = 1001; 

    // Map variables 
    @BindView(R.id.mapView) 
    MapView mapView; 

    @BindView(R.id.newLocationFab) 
    FloatingActionButton newLocationFab; 

    @BindView(R.id.startRouteButton) 
    Button startRouteButton; 

    private MapboxMap mapboxMap; 

    // Navigation related variables 
    private LocationEngine locationEngine; 
    private MapboxNavigation navigation; 
    private DirectionsRoute route; 
    private Position destination; 
    private Position waypoint; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Mapbox.getInstance(getApplicationContext(), getString(R.string.access_token)); 
     setContentView(R.layout.activity_map_navigation); 
     ButterKnife.bind(this); 

     mapView = (MapView) findViewById(R.id.mapView); 
     mapView.onCreate(savedInstanceState); 
     mapView.getMapAsync(this); 

     navigation = new MapboxNavigation(this, getString(R.string.access_token)); 

     LocationEngine locationEngine = LostLocationEngine.getLocationEngine(this); 
     navigation.setLocationEngine(locationEngine); 

     // From Mapbox to The White House 
     Position origin = Position.fromCoordinates(-77.03613, 38.90992); 
     Position destination = Position.fromCoordinates(-77.0365, 38.8977); 

     navigation.getRoute(origin, destination, 90f, new Callback<DirectionsResponse>() { 
      @Override 
      public void onResponse(
        Call<DirectionsResponse> call, Response<DirectionsResponse> response) { 

      } 

      @Override 
      public void onFailure(Call<DirectionsResponse> call, Throwable t) { 

      } 
     }); 

     navigation.addNavigationEventListener(new NavigationEventListener() { 
      @Override 
      public void onRunning(boolean running) { 

      } 
     }); 
    } 

    @OnClick(R.id.startRouteButton) 
    public void onStartRouteClick() { 
     if (navigation != null && route != null) { 

      // Hide the start button 
      startRouteButton.setVisibility(View.INVISIBLE); 

      // Attach all of our navigation listeners. 
      navigation.addNavigationEventListener(this); 
      navigation.addProgressChangeListener(this); 
      navigation.addMilestoneEventListener(this); 

      ((MockLocationEngine) locationEngine).setRoute(route); 
      navigation.setLocationEngine(locationEngine); 
      navigation.startNavigation(route); 
      mapboxMap.setOnMapClickListener(null); 
     } 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     // Remove all navigation listeners being used 
     navigation.removeNavigationEventListener(this); 
     navigation.removeNavigationEventListener(this); 
     navigation.removeProgressChangeListener(this); 
     navigation.removeOffRouteListener(this); 

     // End the navigation session 
     navigation.endNavigation(); 
    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     mapView.onStart(); 
     navigation.onStart(); 
    } 

    @Override 
    public void onMapClick(@NonNull LatLng point) { 

    } 

    @Override 
    public void onMapReady(MapboxMap mapboxMap) { 

    } 

    @Override 
    public void onRunning(boolean running) { 

    } 

    @Override 
    public void onMilestoneEvent(RouteProgress routeProgress, String instruction, int identifier) { 

    } 

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

    } 

    @Override 
    public void userOffRoute(Location location) { 

    } 
} 

回答

0

後整個網絡的深入研究,我終於能夠讓我的導航工作。因此,我將與您分享我的所有參考資源,以便啓用我的導航應用程序。

NavHud Mapbox