From ff5fb66af17a8a66c6d4779e256ed36fb0500208 Mon Sep 17 00:00:00 2001 From: sonora Date: Tue, 20 Mar 2012 23:10:24 +0100 Subject: [PATCH] unify position tolerance as parameter --- .../net/osmand/plus/routing/RoutingHelper.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java index b9bb948e0a..f77eb52b1e 100644 --- a/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/RoutingHelper.java @@ -33,7 +33,7 @@ public class RoutingHelper { public void routeWasCancelled(); } - private final float LOCATION_TOLERANCE = 60; + private final float POSITION_TOLERANCE = 60; private final double DISTANCE_TO_USE_OSMAND_ROUTER = 20000; @@ -179,8 +179,8 @@ public class RoutingHelper { public boolean finishAtLocation(Location currentLocation) { Location lastPoint = routeNodes.get(routeNodes.size() - 1); - if(currentRoute > routeNodes.size() - 3 && currentLocation.distanceTo(lastPoint) < LOCATION_TOLERANCE){ - if(lastFixedLocation != null && lastFixedLocation.distanceTo(lastPoint) < LOCATION_TOLERANCE){ + if(currentRoute > routeNodes.size() - 3 && currentLocation.distanceTo(lastPoint) < POSITION_TOLERANCE){ + if(lastFixedLocation != null && lastFixedLocation.distanceTo(lastPoint) < POSITION_TOLERANCE){ showMessage(context.getString(R.string.arrived_at_destination)); voiceRouter.arrivedDestinationPoint(); clearCurrentRoute(null); @@ -270,7 +270,7 @@ public class RoutingHelper { float bearingRoute = routeNodes.get(currentRoute - 1).bearingTo(routeNodes.get(currentRoute)); float bearingToRoute = currentLocation.bearingTo(routeNodes.get(currentRoute)); float d = Math.abs(currentLocation.distanceTo(routeNodes.get(currentRoute)) * FloatMath.sin((bearingToRoute - bearingRoute)*3.14f/180f)); - if(d > LOCATION_TOLERANCE) { + if(d > POSITION_TOLERANCE) { log.info("Recalculate route, because correlation : " + d); //$NON-NLS-1$ calculateRoute = true; } @@ -279,7 +279,7 @@ public class RoutingHelper { // 5. Sum distance to last and current route nodes if(!calculateRoute){ float d = currentLocation.distanceTo(routeNodes.get(currentRoute)); - if (d > LOCATION_TOLERANCE) { + if (d > POSITION_TOLERANCE) { if (currentRoute > 0) { // 5a. Greater than 2*distance between them? Then re-calculate route. (Case often covered by 4., but still needed.) float f1 = currentLocation.distanceTo(routeNodes.get(currentRoute - 1)) + d; @@ -307,7 +307,7 @@ public class RoutingHelper { lastFixedLocation = currentLocation; // 8. Strange Direction? Then re-calculate route. (Added new, may possibly even replace triggers 4, 5a, 5b ?) - if(suppressTurnPrompt && (currentLocation.distanceTo(routeNodes.get(currentRoute)) > 2*LOCATION_TOLERANCE) ){ + if(suppressTurnPrompt && (currentLocation.distanceTo(routeNodes.get(currentRoute)) > POSITION_TOLERANCE) ){ calculateRoute = true; } @@ -330,7 +330,7 @@ public class RoutingHelper { float bearingRoute = routeNodes.get(currentRoute - 1).bearingTo(routeNodes.get(currentRoute)); float bearingToRoute = currentLocation.bearingTo(routeNodes.get(currentRoute)); float d = Math.abs(currentLocation.distanceTo(routeNodes.get(currentRoute)) * FloatMath.sin((bearingToRoute - bearingRoute)*3.14f/180f)); - if(d > LOCATION_TOLERANCE){ + if(d > POSITION_TOLERANCE){ processed = true; } } else { @@ -390,7 +390,7 @@ public class RoutingHelper { if (Math.abs(bearingMotion - bearingToRoute) > 135f && 360 - Math.abs(bearingMotion - bearingToRoute) > 135f) { float d = currentLocation.distanceTo(routeNodes.get(currentRoute)); // 60m tolerance to allow for GPS inaccuracy - if (d > LOCATION_TOLERANCE) { + if (d > POSITION_TOLERANCE) { if (makeUTwpDetected == 0) { makeUTwpDetected = System.currentTimeMillis(); // require 5 sec since first detection, to avoid false positive announcements