diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/directions/DirectionsActivity.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/directions/DirectionsActivity.java | 104 |
1 files changed, 55 insertions, 49 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/directions/DirectionsActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/directions/DirectionsActivity.java index d5f248f89d..7d46cdb6bb 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/directions/DirectionsActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/directions/DirectionsActivity.java @@ -8,12 +8,6 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.MenuItem; - -import com.mapbox.directions.DirectionsCriteria; -import com.mapbox.directions.MapboxDirections; -import com.mapbox.directions.service.models.DirectionsResponse; -import com.mapbox.directions.service.models.DirectionsRoute; -import com.mapbox.directions.service.models.Waypoint; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.annotations.PolylineOptions; import com.mapbox.mapboxsdk.camera.CameraPosition; @@ -23,12 +17,18 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.maps.MapView; - -import java.util.List; - -import retrofit.Callback; -import retrofit.Response; -import retrofit.Retrofit; +import com.mapbox.services.Constants; +import com.mapbox.services.commons.ServicesException; +import com.mapbox.services.commons.geojson.LineString; +import com.mapbox.services.commons.models.Position; +import com.mapbox.services.directions.v4.DirectionsCriteria; +import com.mapbox.services.directions.v4.MapboxDirections; +import com.mapbox.services.directions.v4.models.DirectionsResponse; +import com.mapbox.services.directions.v4.models.DirectionsRoute; +import com.mapbox.services.directions.v4.models.Waypoint; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; public class DirectionsActivity extends AppCompatActivity { @@ -94,49 +94,55 @@ public class DirectionsActivity extends AppCompatActivity { } private void getRoute(Waypoint origin, Waypoint destination) { - MapboxDirections md = new MapboxDirections.Builder() - .setAccessToken(getString(R.string.mapbox_access_token)) - .setOrigin(origin) - .setDestination(destination) - .setProfile(DirectionsCriteria.PROFILE_WALKING) - .build(); - - md.enqueue(new Callback<DirectionsResponse>() { - @Override - public void onResponse(Response<DirectionsResponse> response, Retrofit retrofit) { - // You can get generic HTTP info about the response - Log.d(LOG_TAG, "Response code: " + response.code()); - - // Print some info about the route - DirectionsRoute currentRoute = response.body().getRoutes().get(0); - Log.d(LOG_TAG, "Distance: " + currentRoute.getDistance()); - - // Draw the route on the map - drawRoute(currentRoute); - } - - @Override - public void onFailure(Throwable t) { - Log.e(LOG_TAG, "Error: " + t.getMessage()); - } - }); + try { + MapboxDirections md = new MapboxDirections.Builder() + .setAccessToken(getString(R.string.mapbox_access_token)) + .setOrigin(origin) + .setDestination(destination) + .setProfile(DirectionsCriteria.PROFILE_WALKING) + .build(); + + md.enqueueCall(new Callback<DirectionsResponse>() { + + @Override + public void onFailure(Call<DirectionsResponse> call, Throwable t) { + Log.e(LOG_TAG, "Error: " + t.getMessage()); + } + + @Override + public void onResponse(Call<DirectionsResponse> call, Response<DirectionsResponse> response) { + // You can get generic HTTP info about the response + Log.d(LOG_TAG, "Response code: " + response.code()); + + // Print some info about the route + DirectionsRoute currentRoute = response.body().getRoutes().get(0); + Log.d(LOG_TAG, "Distance: " + currentRoute.getDistance()); + + // Draw the route on the map + drawRoute(currentRoute); + } + + }); + } catch (ServicesException e) { + Log.e(LOG_TAG, "Error displaying route: " + e.toString()); + e.printStackTrace(); + } } private void drawRoute(DirectionsRoute route) { - // Convert List<Waypoint> into LatLng[] - List<Waypoint> waypoints = route.getGeometry().getWaypoints(); - LatLng[] point = new LatLng[waypoints.size()]; - for (int i = 0; i < waypoints.size(); i++) { - point[i] = new LatLng( - waypoints.get(i).getLatitude(), - waypoints.get(i).getLongitude()); + + PolylineOptions builder = new PolylineOptions(); + builder.color(Color.parseColor("#3887be")); + builder.alpha(0.5f); + builder.width(5); + builder.width(5); + LineString lineString = route.asLineString(Constants.OSRM_PRECISION_V4); + for (Position coordinates : lineString.getCoordinates()) { + builder.add(new LatLng(coordinates.getLatitude(), coordinates.getLongitude())); } // Draw Points on MapView - mMapboxMap.addPolyline(new PolylineOptions() - .add(point) - .color(Color.parseColor("#3887be")) - .width(5)); + mMapboxMap.addPolyline(builder); } @Override |