From 56181d836d9b66a5ef5e585fcbd1742a572aa5db Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Thu, 2 Mar 2017 13:22:22 -0500 Subject: [PATCH 1/3] make service and turf RuntimeExceptions --- .../android/testapp/MainActivity.java | 2 +- .../directions/DirectionsV5Activity.java | 10 +- .../directions/RouteUtilsV5Activity.java | 24 +---- .../testapp/distance/DistanceActivity.java | 6 +- .../geocoding/GeocodingReverseActivity.java | 9 +- .../nav/OffRouteDetectionActivity.java | 25 ++--- .../testapp/nav/SnapToRouteActivity.java | 96 +++++++---------- .../staticimage/StaticImageActivity.java | 18 +--- .../testapp/turf/TurfDestinationActivity.java | 51 +++++---- .../testapp/turf/TurfDistanceActivity.java | 11 +- .../testapp/turf/TurfInsideActivity.java | 12 +-- .../testapp/turf/TurfMidpointActivity.java | 23 ++-- .../testapp/utils/MapMatchingActivity.java | 102 +++++++++--------- .../navigation/v5/LocationUpdatedThread.java | 84 +++++++-------- .../navigation/v5/MapboxNavigation.java | 31 +++--- .../android/ui/geocoder/GeocoderAdapter.java | 4 - .../services/api/ServicesException.java | 4 +- .../api/navigation/v5/RouteProgress.java | 3 +- .../api/utils/turf/TurfException.java | 2 +- .../services/api/utils/turf/TurfGrids.java | 3 +- .../services/api/turf/TurfInvariantTest.java | 10 +- 21 files changed, 209 insertions(+), 321 deletions(-) diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/MainActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/MainActivity.java index ff54ab575..498457a31 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/MainActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/MainActivity.java @@ -176,7 +176,7 @@ protected void onCreate(Bundle savedInstanceState) { // Check for location permission permissionsManager = new PermissionsManager(this); - if (!permissionsManager.areLocationPermissionsGranted(this)) { + if (!PermissionsManager.areLocationPermissionsGranted(this)) { recyclerView.setEnabled(false); permissionsManager.requestLocationPermissions(this); } diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/DirectionsV5Activity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/DirectionsV5Activity.java index 913b2167c..dc162506c 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/DirectionsV5Activity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/DirectionsV5Activity.java @@ -18,7 +18,6 @@ import com.mapbox.services.Constants; import com.mapbox.services.android.testapp.R; import com.mapbox.services.android.testapp.Utils; -import com.mapbox.services.api.ServicesException; import com.mapbox.services.api.directions.v5.DirectionsCriteria; import com.mapbox.services.api.directions.v5.MapboxDirections; import com.mapbox.services.api.directions.v5.models.DirectionsResponse; @@ -91,16 +90,13 @@ public void onMapReady(MapboxMap mapboxMapReady) { .snippet("San Jose")); // Get route from API - try { - getRoute(origin, destination); - } catch (ServicesException servicesException) { - servicesException.printStackTrace(); - } + getRoute(origin, destination); + } }); } - private void getRoute(Position origin, Position destination) throws ServicesException { + private void getRoute(Position origin, Position destination) { ArrayList positions = new ArrayList<>(); positions.add(origin); positions.add(destination); diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/RouteUtilsV5Activity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/RouteUtilsV5Activity.java index ed0c4556e..183f62a08 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/RouteUtilsV5Activity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/directions/RouteUtilsV5Activity.java @@ -30,7 +30,6 @@ import com.mapbox.services.api.directions.v5.models.LegStep; import com.mapbox.services.api.directions.v5.models.RouteLeg; import com.mapbox.services.api.navigation.v5.RouteUtils; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.commons.models.Position; import com.mapbox.services.commons.utils.PolylineUtils; @@ -94,15 +93,7 @@ public void onMapClick(@NonNull LatLng point) { } else if (to == null) { setTo(point); } else { - try { - doUtils(point); - } catch (ServicesException servicesException) { - Log.e(LOG_TAG, "Services exception: " + servicesException.getMessage()); - servicesException.printStackTrace(); - } catch (TurfException turfException) { - Log.e(LOG_TAG, "Turf exception: " + turfException.getMessage()); - turfException.printStackTrace(); - } + doUtils(point); } } }); @@ -121,16 +112,11 @@ private void setTo(LatLng point) { .position(point) .title("To")); - try { - getRoute(Position.fromCoordinates(from.getLongitude(), from.getLatitude()), - Position.fromCoordinates(to.getLongitude(), to.getLatitude())); - } catch (ServicesException servicesException) { - showMessage(servicesException.getMessage()); - servicesException.printStackTrace(); - } + getRoute(Position.fromCoordinates(from.getLongitude(), from.getLatitude()), + Position.fromCoordinates(to.getLongitude(), to.getLatitude())); } - private void doUtils(LatLng point) throws ServicesException, TurfException { + private void doUtils(LatLng point) { // Remove previous if (userTap != null) { mapboxMap.removeMarker(userTap); @@ -159,7 +145,7 @@ private void doUtils(LatLng point) throws ServicesException, TurfException { // Draw snap to route lines snapLines = new ArrayList<>(); for (int stepIndex = 0; stepIndex < route.getSteps().size(); stepIndex++) { - Position snapPoint = routeUtils.getSnapToRoute(position, route, stepIndex); + Position snapPoint = RouteUtils.getSnapToRoute(position, route, stepIndex); LatLng[] points = new LatLng[] { point, new LatLng(snapPoint.getLatitude(), snapPoint.getLongitude())}; diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/distance/DistanceActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/distance/DistanceActivity.java index 80a3c9a48..84b6f6ae3 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/distance/DistanceActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/distance/DistanceActivity.java @@ -13,7 +13,6 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.style.layers.CircleLayer; -import com.mapbox.mapboxsdk.style.layers.NoSuchLayerException; import com.mapbox.mapboxsdk.style.layers.Property; import com.mapbox.mapboxsdk.style.layers.SymbolLayer; import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; @@ -209,12 +208,11 @@ private void updateLayers() { for (int i = 0; i < restaurants.size(); i++) { - try { + if (mapboxMap.getLayer(restaurants.get(i).getStringProperty("name" + "-layer")) != null) { mapboxMap.removeLayer(restaurants.get(i).getStringProperty("name") + "-layer"); - } catch (NoSuchLayerException exception) { - // Layer hasn't been added yet. No worries :) } + SymbolLayer marker = new SymbolLayer( restaurants.get(i).getStringProperty("name") + "-layer", restaurants.get(i).getStringProperty("name") + "-source" diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/geocoding/GeocodingReverseActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/geocoding/GeocodingReverseActivity.java index 5f3c12d56..99554bad5 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/geocoding/GeocodingReverseActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/geocoding/GeocodingReverseActivity.java @@ -13,7 +13,6 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.services.android.testapp.R; import com.mapbox.services.android.testapp.Utils; -import com.mapbox.services.api.ServicesException; import com.mapbox.services.api.geocoding.v5.GeocodingCriteria; import com.mapbox.services.api.geocoding.v5.MapboxGeocoding; import com.mapbox.services.api.geocoding.v5.models.CarmenFeature; @@ -56,11 +55,7 @@ public void onMapClick(@NonNull LatLng point) { mapboxMap.addMarker(new MarkerOptions() .position(point) .title("Your finger is here")); - try { - geocode(point); - } catch (ServicesException servicesException) { - setMessage("Geocoding failed: " + servicesException.getMessage()); - } + geocode(point); } }); } @@ -113,7 +108,7 @@ public void onLowMemory() { * Forward geocoding */ - private void geocode(LatLng point) throws ServicesException { + private void geocode(LatLng point) { Position position = Position.fromCoordinates(point.getLongitude(), point.getLatitude()); MapboxGeocoding client = new MapboxGeocoding.Builder() .setAccessToken(Utils.getMapboxAccessToken(this)) diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/OffRouteDetectionActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/OffRouteDetectionActivity.java index c2d106301..217e83850 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/OffRouteDetectionActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/OffRouteDetectionActivity.java @@ -33,7 +33,6 @@ import com.mapbox.services.api.directions.v5.models.DirectionsResponse; import com.mapbox.services.api.directions.v5.models.DirectionsRoute; import com.mapbox.services.api.navigation.v5.RouteUtils; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.api.utils.turf.TurfMeasurement; import com.mapbox.services.commons.geojson.LineString; import com.mapbox.services.commons.models.Position; @@ -102,19 +101,12 @@ public void onMapClick(@NonNull LatLng point) { destination = Position.fromCoordinates(point.getLongitude(), point.getLatitude()); - try { - getRoute( - Position.fromCoordinates(car.getPosition().getLongitude(), car.getPosition().getLatitude()), - Position.fromCoordinates(point.getLongitude(), point.getLatitude()) - ); - } catch (ServicesException servicesException) { - servicesException.printStackTrace(); - Log.e(TAG, "onMapReady: " + servicesException.getMessage()); - } - + getRoute( + Position.fromCoordinates(car.getPosition().getLongitude(), car.getPosition().getLatitude()), + Position.fromCoordinates(point.getLongitude(), point.getLatitude()) + ); } }); - } // End onMapReady }); } // End onCreate @@ -281,7 +273,7 @@ private void drawRoute(DirectionsRoute route) { } } - private void checkIfOffRoute() throws ServicesException, TurfException { + private void checkIfOffRoute() { Position carCurrentPosition = Position.fromCoordinates( car.getPosition().getLongitude(), @@ -344,12 +336,7 @@ public void run() { // Check that the vehicles off route or not. If you aren't simulating the car, // and want to use this example in the real world, the checkingIfOffRoute method // should go in a locationListener. - try { - checkIfOffRoute(); - } catch (ServicesException | TurfException exception) { - exception.printStackTrace(); - Log.e(TAG, "check if off route error: " + exception.getMessage()); - } + checkIfOffRoute(); // Keeping the current point count we are on. count++; diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/SnapToRouteActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/SnapToRouteActivity.java index 6b824aac1..c30db61f5 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/SnapToRouteActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/nav/SnapToRouteActivity.java @@ -20,13 +20,11 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.services.Constants; import com.mapbox.services.android.testapp.R; -import com.mapbox.services.api.ServicesException; import com.mapbox.services.api.directions.v5.DirectionsCriteria; import com.mapbox.services.api.directions.v5.MapboxDirections; import com.mapbox.services.api.directions.v5.models.DirectionsResponse; import com.mapbox.services.api.directions.v5.models.DirectionsRoute; import com.mapbox.services.api.navigation.v5.RouteUtils; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.api.utils.turf.TurfMisc; import com.mapbox.services.commons.geojson.LineString; import com.mapbox.services.commons.geojson.Point; @@ -120,19 +118,11 @@ public void onMapClick(@NonNull LatLng point) { .position(point) ); - RouteUtils routeUtils = new RouteUtils(); - Position snappedPosition = null; - - try { - snappedPosition = routeUtils.getSnapToRoute( - Position.fromCoordinates(point.getLongitude(), point.getLatitude()), - currentRoute.getLegs().get(0), - stepCount - ); - } catch (ServicesException | TurfException exception) { - exception.printStackTrace(); - Log.e(TAG, "snap to route util: " + exception.getMessage()); - } + Position snappedPosition = RouteUtils.getSnapToRoute( + Position.fromCoordinates(point.getLongitude(), point.getLatitude()), + currentRoute.getLegs().get(0), + stepCount + ); if (snappedPosition == null) { Log.i(TAG, "snapPosition is null"); @@ -155,27 +145,23 @@ public void onMapClick(@NonNull LatLng point) { mapboxMap.removePolyline(distancePolyline); } - try { - LineString slicedLine = TurfMisc.lineSlice( - Point.fromCoordinates(snappedPosition), - Point.fromCoordinates(coords.get(coords.size() - 1)), - LineString.fromCoordinates(coords) - ); - - List linePositions = slicedLine.getCoordinates(); - List lineLatLng = new ArrayList<>(); - for (Position pos : linePositions) { - lineLatLng.add(new LatLng(pos.getLatitude(), pos.getLongitude())); - } + LineString slicedLine = TurfMisc.lineSlice( + Point.fromCoordinates(snappedPosition), + Point.fromCoordinates(coords.get(coords.size() - 1)), + LineString.fromCoordinates(coords) + ); - distancePolyline = mapboxMap.addPolyline(new PolylineOptions() - .addAll(lineLatLng) - .color(Color.parseColor("#f1f075")) - .width(5f) - ); - } catch (TurfException turfException) { - turfException.printStackTrace(); + List linePositions = slicedLine.getCoordinates(); + List lineLatLng = new ArrayList<>(); + for (Position pos : linePositions) { + lineLatLng.add(new LatLng(pos.getLatitude(), pos.getLongitude())); } + + distancePolyline = mapboxMap.addPolyline(new PolylineOptions() + .addAll(lineLatLng) + .color(Color.parseColor("#f1f075")) + .width(5f) + ); } @Override @@ -183,11 +169,7 @@ public void onMapReady(MapboxMap mapboxMap) { SnapToRouteActivity.this.mapboxMap = mapboxMap; mapboxMap.setOnMapClickListener(this); - try { - getRoute(origin, destination); - } catch (ServicesException servicesException) { - servicesException.printStackTrace(); - } + getRoute(origin, destination); } private void drawDistanceRoutePolyline(Position snappedPosition) { @@ -199,30 +181,26 @@ private void drawDistanceRoutePolyline(Position snappedPosition) { mapboxMap.removePolyline(distanceRoutePolyline); } - try { - LineString slicedRouteLine = TurfMisc.lineSlice( - Point.fromCoordinates(snappedPosition), - Point.fromCoordinates(routeCoords.get(routeCoords.size() - 1)), - LineString.fromCoordinates(routeCoords) - ); - - List linePositions = slicedRouteLine.getCoordinates(); - List lineLatLng = new ArrayList<>(); - for (Position pos : linePositions) { - lineLatLng.add(new LatLng(pos.getLatitude(), pos.getLongitude())); - } + LineString slicedRouteLine = TurfMisc.lineSlice( + Point.fromCoordinates(snappedPosition), + Point.fromCoordinates(routeCoords.get(routeCoords.size() - 1)), + LineString.fromCoordinates(routeCoords) + ); - distanceRoutePolyline = mapboxMap.addPolyline(new PolylineOptions() - .addAll(lineLatLng) - .color(Color.parseColor("#3887be")) - .width(5f) - ); - } catch (TurfException turfException) { - turfException.printStackTrace(); + List linePositions = slicedRouteLine.getCoordinates(); + List lineLatLng = new ArrayList<>(); + for (Position pos : linePositions) { + lineLatLng.add(new LatLng(pos.getLatitude(), pos.getLongitude())); } + + distanceRoutePolyline = mapboxMap.addPolyline(new PolylineOptions() + .addAll(lineLatLng) + .color(Color.parseColor("#3887be")) + .width(5f) + ); } - private void getRoute(Position origin, Position destination) throws ServicesException { + private void getRoute(Position origin, Position destination) { MapboxDirections client = new MapboxDirections.Builder() .setOrigin(origin) diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/staticimage/StaticImageActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/staticimage/StaticImageActivity.java index dd78fd47b..4d7158328 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/staticimage/StaticImageActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/staticimage/StaticImageActivity.java @@ -5,18 +5,14 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; -import android.util.Log; import com.mapbox.services.Constants; import com.mapbox.services.android.testapp.R; import com.mapbox.services.android.testapp.Utils; -import com.mapbox.services.api.ServicesException; import com.mapbox.services.api.staticimage.v1.MapboxStaticImage; public class StaticImageActivity extends AppCompatActivity { - private static final String LOG_TAG = "StaticImageActivity"; - // All default Mapbox styles public static final String[] MAPBOX_STYLES = { Constants.MAPBOX_STYLE_STREETS, Constants.MAPBOX_STYLE_LIGHT, @@ -66,22 +62,16 @@ private String[] buildDataset() { int i = 0; for (double[] place : PLACES) { for (String style : MAPBOX_STYLES) { - String imageUrl = null; - try { - imageUrl = getImageUrl(style, place, isRetina); - dataset[i] = imageUrl; - i++; - } catch (ServicesException servicesException) { - Log.e(LOG_TAG, "Error: " + servicesException.getMessage()); - servicesException.printStackTrace(); - } + String imageUrl = getImageUrl(style, place, isRetina); + dataset[i] = imageUrl; + i++; } } return dataset; } - private String getImageUrl(String style, double[] place, boolean isRetina) throws ServicesException { + private String getImageUrl(String style, double[] place, boolean isRetina) { MapboxStaticImage staticImage = new MapboxStaticImage.Builder() .setAccessToken(Utils.getMapboxAccessToken(this)) .setUsername(Constants.MAPBOX_USER) diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java index 3973b257c..ee387d933 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java @@ -142,34 +142,31 @@ public void onClick(View view) { Toast.makeText(TurfDestinationActivity.this, "missing bearing value", Toast.LENGTH_LONG).show(); return; } - try { - Point result = TurfMeasurement.destination( - Point.fromCoordinates(cadillacHotelPosition), - distance, - bearing, - distanceUnitsSpinner.getSelectedItem().toString() - ); - Position resultPosition = result.getCoordinates(); - if (destinationMarker != null) { - map.removeMarker(destinationMarker); - } - destinationMarker = map.addMarker(new MarkerViewOptions() - .position(new LatLng(result.getCoordinates().getLatitude(), result.getCoordinates().getLongitude())) - .title("destination")); - LatLngBounds latLngBounds = new LatLngBounds.Builder() - .include(new LatLng(cadillacHotelPosition.getLatitude(), cadillacHotelPosition.getLongitude())) - .include(new LatLng(resultPosition.getLatitude(), resultPosition.getLongitude())) - .build(); - - map.animateCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, 80, 160, 80, 160), 1000); - - Snackbar.make( - container, - "Destination = " + resultPosition.getLatitude() + ", " + resultPosition.getLongitude(), - Snackbar.LENGTH_INDEFINITE).show(); - } catch (TurfException turfException) { - turfException.printStackTrace(); + + Point result = TurfMeasurement.destination( + Point.fromCoordinates(cadillacHotelPosition), + distance, + bearing, + distanceUnitsSpinner.getSelectedItem().toString() + ); + Position resultPosition = result.getCoordinates(); + if (destinationMarker != null) { + map.removeMarker(destinationMarker); } + destinationMarker = map.addMarker(new MarkerViewOptions() + .position(new LatLng(result.getCoordinates().getLatitude(), result.getCoordinates().getLongitude())) + .title("destination")); + LatLngBounds latLngBounds = new LatLngBounds.Builder() + .include(new LatLng(cadillacHotelPosition.getLatitude(), cadillacHotelPosition.getLongitude())) + .include(new LatLng(resultPosition.getLatitude(), resultPosition.getLongitude())) + .build(); + + map.animateCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, 80, 160, 80, 160), 1000); + + Snackbar.make( + container, + "Destination = " + resultPosition.getLatitude() + ", " + resultPosition.getLongitude(), + Snackbar.LENGTH_INDEFINITE).show(); dialog.dismiss(); diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java index 59096ffdd..14a9c2317 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java @@ -153,13 +153,10 @@ public void onMapClick(@NonNull LatLng point) { .title("point 2")); double distance = 0; - try { - distance = TurfMeasurement.distance( - Point.fromCoordinates(cadillacHotelPosition), - Point.fromCoordinates(Position.fromCoordinates(point.getLongitude(), point.getLatitude())), units); - } catch (TurfException turfException) { - turfException.printStackTrace(); - } + + distance = TurfMeasurement.distance( + Point.fromCoordinates(cadillacHotelPosition), + Point.fromCoordinates(Position.fromCoordinates(point.getLongitude(), point.getLatitude())), units); Snackbar.make(container, "Distance = " + distance + " " + units, Snackbar.LENGTH_INDEFINITE).show(); } }); diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfInsideActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfInsideActivity.java index 7f08fea43..3b6891b1a 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfInsideActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfInsideActivity.java @@ -19,7 +19,6 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.services.android.testapp.R; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.api.utils.turf.TurfJoins; import com.mapbox.services.commons.models.Position; @@ -122,14 +121,9 @@ public void onMapClick(@NonNull LatLng point) { polygonPositions.add(Position.fromCoordinates(latLng.getLongitude(), latLng.getLatitude())); } - try { - boolean pointWithin = TurfJoins.inside(Position.fromCoordinates( - withinMarker.getPosition().getLongitude(), withinMarker.getPosition().getLatitude()), polygonPositions); - Snackbar.make(container, "Point lands within polygon = " + pointWithin, Snackbar.LENGTH_INDEFINITE).show(); - } catch (TurfException turfException) { - Log.e(TAG, "onMapClick: " + turfException.getMessage()); - turfException.printStackTrace(); - } + boolean pointWithin = TurfJoins.inside(Position.fromCoordinates( + withinMarker.getPosition().getLongitude(), withinMarker.getPosition().getLatitude()), polygonPositions); + Snackbar.make(container, "Point lands within polygon = " + pointWithin, Snackbar.LENGTH_INDEFINITE).show(); } } }); diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfMidpointActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfMidpointActivity.java index 178a1507e..5fe9dd577 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfMidpointActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfMidpointActivity.java @@ -4,7 +4,6 @@ import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; -import android.util.Log; import android.view.View; import com.mapbox.mapboxsdk.annotations.Marker; @@ -14,13 +13,11 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.services.android.testapp.R; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.api.utils.turf.TurfMeasurement; import com.mapbox.services.commons.models.Position; public class TurfMidpointActivity extends AppCompatActivity { - private static final String TAG = "TurfMidpointActivity"; private MapView mapView; private MapboxMap map; private Marker secondMarker; @@ -113,21 +110,15 @@ public void onMapClick(@NonNull LatLng point) { .position(point) .title("point 2")); - try { - Position midpoint = TurfMeasurement.midpoint(cadillacHotelPosition, - Position.fromCoordinates(point.getLongitude(), point.getLatitude())); + Position midpoint = TurfMeasurement.midpoint(cadillacHotelPosition, + Position.fromCoordinates(point.getLongitude(), point.getLatitude())); - midpointMarker = map.addMarker(new MarkerViewOptions() - .position(new LatLng(midpoint.getLatitude(), midpoint.getLongitude())) - .title("midpoint")); + midpointMarker = map.addMarker(new MarkerViewOptions() + .position(new LatLng(midpoint.getLatitude(), midpoint.getLongitude())) + .title("midpoint")); - Snackbar.make(container, "Midpoint = " + " Latitiude: " + midpoint.getLatitude() - + "Longitude: " + midpoint.getLongitude(), Snackbar.LENGTH_INDEFINITE).show(); - - } catch (TurfException turfException) { - turfException.printStackTrace(); - Log.e(TAG, "onMapClick: " + turfException.getMessage()); - } + Snackbar.make(container, "Midpoint = " + " Latitiude: " + midpoint.getLatitude() + + "Longitude: " + midpoint.getLongitude(), Snackbar.LENGTH_INDEFINITE).show(); } }); } diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/utils/MapMatchingActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/utils/MapMatchingActivity.java index 136a78cad..e1c9d4c6a 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/utils/MapMatchingActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/utils/MapMatchingActivity.java @@ -16,7 +16,6 @@ import com.mapbox.services.Constants; import com.mapbox.services.android.testapp.R; import com.mapbox.services.android.testapp.Utils; -import com.mapbox.services.api.ServicesException; import com.mapbox.services.api.mapmatching.v5.MapMatchingCriteria; import com.mapbox.services.api.mapmatching.v5.MapboxMapMatching; import com.mapbox.services.api.mapmatching.v5.models.MapMatchingResponse; @@ -158,61 +157,56 @@ private void drawBeforeMapMatching(List points) { } private void drawMapMatched(Position[] coordinates) { - try { - // Setup the request using a client. - MapboxMapMatching client = new MapboxMapMatching.Builder() - .setAccessToken(Utils.getMapboxAccessToken(MapMatchingActivity.this)) - .setProfile(MapMatchingCriteria.PROFILE_DRIVING) - .setCoordinates(coordinates) - .build(); - - // Execute the API call and handle the response. - client.enqueueCall(new Callback() { - @Override - public void onResponse(Call call, Response response) { - // Create a new list to store the map matched coordinates. - List mapMatchedPoints = new ArrayList<>(); - - // Check that the map matching API response is "OK". - if (response.code() == 200) { - // Convert the map matched response list from position to latlng coordinates. - // By default, the SDK uses MapMatchingCriteria.GEOMETRY_POLYLINE_6, therefore - // you need Constants.PRECISION_6 for the decode to be right - String geometry = response.body().getMatchings().get(0).getGeometry(); - List positions = PolylineUtils.decode(geometry, Constants.PRECISION_6); - if (positions == null) { - return; - } - - for (int i = 0; i < positions.size(); i++) { - mapMatchedPoints.add(new LatLng( - positions.get(i).getLatitude(), - positions.get(i).getLongitude())); - } - - if (mapMatchedRoute != null) { - map.removeAnnotation(mapMatchedRoute); - } - - // Add the map matched route to the Mapbox map. - mapMatchedRoute = map.addPolyline(new PolylineOptions() - .addAll(mapMatchedPoints) - .color(Color.parseColor("#3bb2d0")) - .width(4)); - } else { - // If the response code does not response "OK" an error has occurred. - Log.e(TAG, "Too many coordinates, profile not found, invalid input, or no match."); + // Setup the request using a client. + MapboxMapMatching client = new MapboxMapMatching.Builder() + .setAccessToken(Utils.getMapboxAccessToken(MapMatchingActivity.this)) + .setProfile(MapMatchingCriteria.PROFILE_DRIVING) + .setCoordinates(coordinates) + .build(); + + // Execute the API call and handle the response. + client.enqueueCall(new Callback() { + @Override + public void onResponse(Call call, Response response) { + // Create a new list to store the map matched coordinates. + List mapMatchedPoints = new ArrayList<>(); + + // Check that the map matching API response is "OK". + if (response.code() == 200) { + // Convert the map matched response list from position to latlng coordinates. + // By default, the SDK uses MapMatchingCriteria.GEOMETRY_POLYLINE_6, therefore + // you need Constants.PRECISION_6 for the decode to be right + String geometry = response.body().getMatchings().get(0).getGeometry(); + List positions = PolylineUtils.decode(geometry, Constants.PRECISION_6); + if (positions == null) { + return; + } + + for (int i = 0; i < positions.size(); i++) { + mapMatchedPoints.add(new LatLng( + positions.get(i).getLatitude(), + positions.get(i).getLongitude())); + } + + if (mapMatchedRoute != null) { + map.removeAnnotation(mapMatchedRoute); } - } - @Override - public void onFailure(Call call, Throwable throwable) { - Log.e(TAG, "MapboxMapMatching error: " + throwable.getMessage()); + // Add the map matched route to the Mapbox map. + mapMatchedRoute = map.addPolyline(new PolylineOptions() + .addAll(mapMatchedPoints) + .color(Color.parseColor("#3bb2d0")) + .width(4)); + } else { + // If the response code does not response "OK" an error has occurred. + Log.e(TAG, "Too many coordinates, profile not found, invalid input, or no match."); } - }); - } catch (ServicesException servicesException) { - Log.e(TAG, "MapboxMapMatching error: " + servicesException.getMessage()); - servicesException.printStackTrace(); - } + } + + @Override + public void onFailure(Call call, Throwable throwable) { + Log.e(TAG, "MapboxMapMatching error: " + throwable.getMessage()); + } + }); } } \ No newline at end of file diff --git a/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/LocationUpdatedThread.java b/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/LocationUpdatedThread.java index 1b8140239..4a4241d7e 100644 --- a/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/LocationUpdatedThread.java +++ b/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/LocationUpdatedThread.java @@ -72,55 +72,50 @@ private void handleRequest(final RouteProgress target, final Location location) return; } - try { - // Convert the location object to both the true position and a snapped (to the route) position. - Position truePosition = Position.fromCoordinates(location.getLongitude(), location.getLatitude()); - Position snappedPosition = RouteUtils.getSnapToRoute( - truePosition, - target.getRoute().getLegs().get((target).getLegIndex()), - target.getStepIndex() - ); - - // Even if the user isn't listening in to the alert listener, we need to run monitorStepProgress inorder to - // update the routeProgress object - final int alertLevel = monitorStepProgress(target, location, truePosition, snappedPosition); - - List intersections = getNextIntersections(target, snappedPosition); - - // Test the closest intersection to the user only. - if (intersections.size() > 0) { - userStillOnRoute = isUserStillOnRoute(intersections.get(0), location.getBearing()); - } - if (snapToRoute && userStillOnRoute) { - // Pass in the snapped location with all the other location data remaining intact for their use. - location.setLatitude(snappedPosition.getLatitude()); - location.setLongitude(snappedPosition.getLongitude()); - } + // Convert the location object to both the true position and a snapped (to the route) position. + Position truePosition = Position.fromCoordinates(location.getLongitude(), location.getLatitude()); + Position snappedPosition = RouteUtils.getSnapToRoute( + truePosition, + target.getRoute().getLegs().get((target).getLegIndex()), + target.getStepIndex() + ); + + // Even if the user isn't listening in to the alert listener, we need to run monitorStepProgress inorder to + // update the routeProgress object + final int alertLevel = monitorStepProgress(target, location, truePosition, snappedPosition); + + List intersections = getNextIntersections(target, snappedPosition); + + // Test the closest intersection to the user only. + if (intersections.size() > 0) { + userStillOnRoute = isUserStillOnRoute(intersections.get(0), location.getBearing()); + } + if (snapToRoute && userStillOnRoute) { + // Pass in the snapped location with all the other location data remaining intact for their use. + location.setLatitude(snappedPosition.getLatitude()); + location.setLongitude(snappedPosition.getLongitude()); + } - this.location = location; + this.location = location; - // Post back to the UI Thread. - responseHandler.post(new Runnable() { - public void run() { - if (offRouteListener != null && !userStillOnRoute) { - offRouteListener.userOffRoute(location); - } + // Post back to the UI Thread. + responseHandler.post(new Runnable() { + public void run() { + if (offRouteListener != null && !userStillOnRoute) { + offRouteListener.userOffRoute(location); + } - if (target.getPreviousAlertLevel() != alertLevel) { - if (alertLevelChangeListener != null) { - target.setAlertUserLevel(alertLevel); - alertLevelChangeListener.onAlertLevelChange(alertLevel, target); - } - } - if (progressChangeListener != null) { - progressChangeListener.onProgressChange(LocationUpdatedThread.this.location, target); + if (target.getPreviousAlertLevel() != alertLevel) { + if (alertLevelChangeListener != null) { + target.setAlertUserLevel(alertLevel); + alertLevelChangeListener.onAlertLevelChange(alertLevel, target); } } - }); - - } catch (ServicesException | TurfException exception) { - exception.printStackTrace(); - } + if (progressChangeListener != null) { + progressChangeListener.onProgressChange(LocationUpdatedThread.this.location, target); + } + } + }); } void setAlertLevelChangeListener(AlertLevelChangeListener alertLevelChangeListener) { @@ -223,7 +218,6 @@ private int monitorStepProgress(final RouteProgress routeProgress, Location loca * @throws TurfException Thrown if turf calculation error occurs. * @since 2.0.0 */ - @VisibleForTesting public List getNextIntersections(RouteProgress routeProgress, Position userPosition) throws TurfException { List intersectionsWithinRange = new ArrayList<>(); diff --git a/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/MapboxNavigation.java b/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/MapboxNavigation.java index 4c943d7a9..1286ce0ca 100644 --- a/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/MapboxNavigation.java +++ b/mapbox/libandroid-services/src/main/java/com/mapbox/services/android/navigation/v5/MapboxNavigation.java @@ -244,25 +244,20 @@ public void getRoute(@NonNull Callback callback) throws Serv + "before calling getRoute"); } - try { - MapboxDirections.Builder directionsBuilder = new MapboxDirections.Builder() - .setProfile(profile) - .setAccessToken(accessToken) - .setOverview(DirectionsCriteria.OVERVIEW_FULL) - .setOrigin(getOrigin()) - .setDestination(getDestination()) - .setSteps(true); - - // Optionally set the bearing and radiuses if the developer provider the user bearing. A tolerance of 90 degrees - // is given. - if (userBearing != null) { - directionsBuilder.setBearings(new double[] {getUserOriginBearing(), 90}); - } - - directionsBuilder.build().enqueueCall(callback); - } catch (ServicesException serviceException) { - Timber.e("Failed to get route: %s", serviceException.getMessage()); + MapboxDirections.Builder directionsBuilder = new MapboxDirections.Builder() + .setProfile(profile) + .setAccessToken(accessToken) + .setOverview(DirectionsCriteria.OVERVIEW_FULL) + .setOrigin(getOrigin()) + .setDestination(getDestination()) + .setSteps(true); + + // Optionally set the bearing and radiuses if the developer provider the user bearing. A tolerance of 90 degrees + // is given. + if (userBearing != null) { + directionsBuilder.setBearings(new double[] {getUserOriginBearing(), 90}); } + directionsBuilder.build().enqueueCall(callback); } /** diff --git a/mapbox/libandroid-ui/src/main/java/com/mapbox/services/android/ui/geocoder/GeocoderAdapter.java b/mapbox/libandroid-ui/src/main/java/com/mapbox/services/android/ui/geocoder/GeocoderAdapter.java index 7db9cabc3..090d1421d 100644 --- a/mapbox/libandroid-ui/src/main/java/com/mapbox/services/android/ui/geocoder/GeocoderAdapter.java +++ b/mapbox/libandroid-ui/src/main/java/com/mapbox/services/android/ui/geocoder/GeocoderAdapter.java @@ -9,7 +9,6 @@ import android.widget.Filterable; import android.widget.TextView; -import com.mapbox.services.api.ServicesException; import com.mapbox.services.api.geocoding.v5.MapboxGeocoding; import com.mapbox.services.api.geocoding.v5.models.CarmenFeature; import com.mapbox.services.api.geocoding.v5.models.GeocodingResponse; @@ -470,9 +469,6 @@ protected FilterResults performFiltering(CharSequence constraint) { } catch (IOException ioException) { ioException.printStackTrace(); return results; - } catch (ServicesException serviceException) { - serviceException.printStackTrace(); - return results; } // Check it went well diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/ServicesException.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/ServicesException.java index a90303af1..5eb17c24f 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/ServicesException.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/ServicesException.java @@ -3,8 +3,10 @@ /** * Generic Exception for all things Mapbox, this is used for geocoding, directions, and other APIs * in this SDK. + * + * @since 1.0.0 */ -public class ServicesException extends Exception { +public class ServicesException extends RuntimeException { /** * A form of {@code Throwable} that indicates conditions that a reasonable application might diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/navigation/v5/RouteProgress.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/navigation/v5/RouteProgress.java index af0599a13..e792603fc 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/navigation/v5/RouteProgress.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/navigation/v5/RouteProgress.java @@ -6,7 +6,6 @@ import com.mapbox.services.api.directions.v5.models.LegStep; import com.mapbox.services.api.directions.v5.models.RouteLeg; import com.mapbox.services.api.utils.turf.TurfConstants; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.api.utils.turf.TurfMeasurement; import com.mapbox.services.commons.geojson.LineString; @@ -149,7 +148,7 @@ public LegStep getCurrentStep() { * * @since 2.0.0 */ - public double getDistanceTraveledOnStep() throws TurfException { + public double getDistanceTraveledOnStep() { LineString lineString = LineString.fromPolyline(getCurrentStep().getGeometry(), Constants.PRECISION_6); return TurfMeasurement.lineDistance(lineString, TurfConstants.UNIT_METERS) - distanceRemainingOnStep; } diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfException.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfException.java index 2c129546d..347784d1b 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfException.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfException.java @@ -7,7 +7,7 @@ * @see Turfjs documentation * @since 1.2.0 */ -public class TurfException extends Exception { +public class TurfException extends RuntimeException { /** * A form of {@code Throwable} that indicates conditions that a reasonable application might want diff --git a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfGrids.java b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfGrids.java index ce03c24dd..53fb284a7 100644 --- a/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfGrids.java +++ b/mapbox/libjava-services/src/main/java/com/mapbox/services/api/utils/turf/TurfGrids.java @@ -23,10 +23,9 @@ public class TurfGrids { * @param points input points. * @param polygons input polygons. * @return points that land within at least one polygon. - * @throws TurfException Signals that a Turf exception of some sort has occurred. * @since 1.3.0 */ - public static FeatureCollection within(FeatureCollection points, FeatureCollection polygons) throws TurfException { + public static FeatureCollection within(FeatureCollection points, FeatureCollection polygons) { ArrayList features = new ArrayList<>(); for (int i = 0; i < polygons.getFeatures().size(); i++) { for (int j = 0; j < points.getFeatures().size(); j++) { diff --git a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java index ea9dc2210..b2663b9f6 100644 --- a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java +++ b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java @@ -42,8 +42,8 @@ public void testInvariantGeojsonType3() throws TurfException { } @Test - public void testInvariantGeojsonType4() throws TurfException { - String json = "{ type: 'Point', coordinates: [0, 0] }"; + public void testInvariantGeojsonType4() { + String json = "{ type: 'Point'`, coordinates: [0, 0] }"; TurfInvariant.geojsonType(Point.fromJson(json), "Point", "myfn"); } @@ -72,7 +72,7 @@ public void testInvariantFeatureOf3() throws TurfException { } @Test - public void testInvariantFeatureOf4() throws TurfException { + public void testInvariantFeatureOf4() { String json = "{ type: 'Feature', geometry: { type: 'Point', coordinates: [0, 0]}, properties: {}}"; TurfInvariant.featureOf(Feature.fromJson(json), "Point", "myfn"); } @@ -103,7 +103,7 @@ public void testInvariantCollectionOf3() throws TurfException { } @Test - public void testInvariantCollectionOf4() throws TurfException { + public void testInvariantCollectionOf4() { String json = "{type: 'FeatureCollection', features: [{ type: 'Feature', geometry: { type: 'Point', coordinates: " + "[0, 0]}, properties: {}}]}"; TurfInvariant.collectionOf(FeatureCollection.fromJson(json), "Point", "myfn"); @@ -111,7 +111,7 @@ public void testInvariantCollectionOf4() throws TurfException { @Test - public void testInvariantGetCoord() throws TurfException { + public void testInvariantGetCoord() { String jsonPoint = "{type: 'Point', coordinates: [1, 2]}"; String jsonFeature = "{type: 'Feature', geometry: {type: 'Point', coordinates: [1, 2]}}"; From e1b6e07a388ac6d558008a26f50b8ec4edae645a Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Tue, 7 Mar 2017 18:21:01 -0800 Subject: [PATCH 2/3] fixed checkstyle --- .../services/android/testapp/turf/TurfDestinationActivity.java | 1 - .../services/android/testapp/turf/TurfDistanceActivity.java | 1 - 2 files changed, 2 deletions(-) diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java index ee387d933..6286edbab 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDestinationActivity.java @@ -20,7 +20,6 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.services.android.testapp.R; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.api.utils.turf.TurfMeasurement; import com.mapbox.services.commons.geojson.Point; import com.mapbox.services.commons.models.Position; diff --git a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java index 14a9c2317..8dd6a08dc 100644 --- a/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java +++ b/mapbox/app/src/main/java/com/mapbox/services/android/testapp/turf/TurfDistanceActivity.java @@ -16,7 +16,6 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.services.android.testapp.R; import com.mapbox.services.api.utils.turf.TurfConstants; -import com.mapbox.services.api.utils.turf.TurfException; import com.mapbox.services.api.utils.turf.TurfMeasurement; import com.mapbox.services.commons.geojson.Point; import com.mapbox.services.commons.models.Position; From 6d08fc72a8bbd6ce3556fd78e37a32f49efb76ac Mon Sep 17 00:00:00 2001 From: Cameron Mace Date: Wed, 8 Mar 2017 09:00:32 -0800 Subject: [PATCH 3/3] fixed error in test json --- .../java/com/mapbox/services/api/turf/TurfInvariantTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java index b2663b9f6..eeea723ba 100644 --- a/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java +++ b/mapbox/libjava-services/src/test/java/com/mapbox/services/api/turf/TurfInvariantTest.java @@ -43,7 +43,7 @@ public void testInvariantGeojsonType3() throws TurfException { @Test public void testInvariantGeojsonType4() { - String json = "{ type: 'Point'`, coordinates: [0, 0] }"; + String json = "{ type: 'Point', coordinates: [0, 0] }"; TurfInvariant.geojsonType(Point.fromJson(json), "Point", "myfn"); }