use of com.mapbox.geojson.Point in project mapbox-navigation-android by mapbox.
the class NavigationRouteProcessorTest method onSnapToRouteEnabledAndUserOnRoute_snappedLocationReturns.
@Test
public void onSnapToRouteEnabledAndUserOnRoute_snappedLocationReturns() throws Exception {
RouteProgress progress = routeProcessor.buildNewRouteProgress(navigation, mock(Location.class));
boolean snapEnabled = true;
boolean userOffRoute = false;
List<Point> coordinates = createCoordinatesFromCurrentStep(progress);
Point lastPointInCurrentStep = coordinates.remove(coordinates.size() - 1);
Location rawLocation = buildDefaultLocationUpdate(lastPointInCurrentStep.longitude(), lastPointInCurrentStep.latitude());
Location snappedLocation = routeProcessor.buildSnappedLocation(navigation, snapEnabled, rawLocation, progress, userOffRoute);
assertTrue(!rawLocation.equals(snappedLocation));
}
use of com.mapbox.geojson.Point in project mapbox-navigation-android by mapbox.
the class OffRouteDetectorTest method setupStepPoints.
private void setupStepPoints(OffRouteDetector offRouteDetector) throws Exception {
RouteProgress routeProgress = buildDefaultRouteProgress();
LegStep currentStep = routeProgress.currentLegProgress().currentStep();
LineString lineString = LineString.fromPolyline(currentStep.geometry(), Constants.PRECISION_6);
List<Point> stepPoints = lineString.coordinates();
offRouteDetector.updateStepPoints(stepPoints);
}
use of com.mapbox.geojson.Point in project mapbox-navigation-android by mapbox.
the class OffRouteDetectorTest method validOffRoute_onMinimumDistanceBeforeReroutingPassed.
@Test
public void validOffRoute_onMinimumDistanceBeforeReroutingPassed() throws Exception {
Location mapboxOffice = buildDefaultLocationUpdate(-77.0339782574523, 38.89993519985637);
RouteProgress routeProgress = buildDefaultRouteProgress();
offRouteDetector.isUserOffRoute(mockLocation, mockProgress, options);
Point target = buildPointAwayFromLocation(mapboxOffice, options.minimumDistanceBeforeRerouting() + 1);
Location locationOverMinimumDistance = buildDefaultLocationUpdate(target.longitude(), target.latitude());
boolean validOffRoute = offRouteDetector.isUserOffRoute(locationOverMinimumDistance, routeProgress, options);
assertTrue(validOffRoute);
}
use of com.mapbox.geojson.Point in project mapbox-navigation-android by mapbox.
the class OffRouteDetectorTest method isUserOffRoute_AssertFalseWhenWithinRadiusAndStepLocationHasBadAccuracy.
@Test
public void isUserOffRoute_AssertFalseWhenWithinRadiusAndStepLocationHasBadAccuracy() throws Exception {
RouteProgress routeProgress = buildDefaultRouteProgress();
Point stepManeuverPoint = routeProgress.directionsRoute().legs().get(0).steps().get(0).maneuver().location();
Location firstUpdate = buildDefaultLocationUpdate(-77.0339782574523, 38.89993519985637);
offRouteDetector.isUserOffRoute(firstUpdate, routeProgress, options);
Point offRoutePoint = buildPointAwayFromPoint(stepManeuverPoint, 250, 90);
Location secondUpdate = buildDefaultLocationUpdate(offRoutePoint.longitude(), offRoutePoint.latitude());
when(secondUpdate.getAccuracy()).thenReturn(300f);
boolean isUserOffRoute = offRouteDetector.isUserOffRoute(secondUpdate, routeProgress, options);
assertFalse(isUserOffRoute);
}
use of com.mapbox.geojson.Point in project mapbox-navigation-android by mapbox.
the class RouteStepProgressTest method distanceRemaining_equalsCorrectValueAtIntervals.
@Test
public void distanceRemaining_equalsCorrectValueAtIntervals() {
LineString lineString = LineString.fromPolyline(firstStep.geometry(), Constants.PRECISION_6);
double stepDistance = TurfMeasurement.length(lineString, TurfConstants.UNIT_METERS);
// meters
double stepSegments = 5;
// Chop the line in small pieces
for (double i = 0; i < stepDistance; i += stepSegments) {
Point point = TurfMeasurement.along(lineString, i, TurfConstants.UNIT_METERS);
if (point.equals(route.legs().get(0).steps().get(1).maneuver().location())) {
return;
}
LineString slicedLine = TurfMisc.lineSlice(point, route.legs().get(0).steps().get(1).maneuver().location(), lineString);
double distance = TurfMeasurement.length(slicedLine, TurfConstants.UNIT_METERS);
RouteProgress routeProgress = RouteProgress.builder().stepDistanceRemaining(distance).legDistanceRemaining(firstLeg.distance()).distanceRemaining(route.distance()).directionsRoute(route).stepIndex(0).legIndex(0).build();
RouteStepProgress routeStepProgress = routeProgress.currentLegProgress().currentStepProgress();
assertEquals(distance, routeStepProgress.distanceRemaining(), BaseTest.DELTA);
}
}
Aggregations