From 2f6309334f203102b85fd23f9be307e74a9b0eb4 Mon Sep 17 00:00:00 2001 From: Arndt Date: Wed, 7 Dec 2016 21:54:50 +0100 Subject: [PATCH] no waypoint sanity checks when just reading nogos --- .../main/java/btools/routingapp/BRouterService.java | 4 ++-- .../java/btools/routingapp/CoordinateReader.java | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/brouter-routing-app/src/main/java/btools/routingapp/BRouterService.java b/brouter-routing-app/src/main/java/btools/routingapp/BRouterService.java index 6a1b9b8..3bcc1fb 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/BRouterService.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/BRouterService.java @@ -105,7 +105,7 @@ public class BRouterService extends Service worker.profilePath = baseDir + "/brouter/profiles2/" + smc.profile + ".brf"; worker.rawTrackPath = baseDir + "/brouter/modes/" + mode_key + "_rawtrack.dat"; - CoordinateReader cor = CoordinateReader.obtainValidReader( baseDir, worker.segmentDir ); + CoordinateReader cor = CoordinateReader.obtainValidReader( baseDir, worker.segmentDir, true ); worker.nogoList = new ArrayList(); // veto nogos by profiles veto list for ( OsmNodeNamed nogo : cor.nogopoints ) @@ -142,7 +142,7 @@ public class BRouterService extends Service try { // add nogos from waypoint database - CoordinateReader cor = CoordinateReader.obtainValidReader( baseDir, worker.segmentDir ); + CoordinateReader cor = CoordinateReader.obtainValidReader( baseDir, worker.segmentDir, true ); worker.nogoList = new ArrayList( cor.nogopoints ); if ( !fileEqual( profileBytes, profileFile ) ) diff --git a/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java b/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java index 8800127..b15cb28 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java @@ -25,6 +25,8 @@ public abstract class CoordinateReader public String rootdir; public String tracksdir; + private boolean nogosOnly; + private Map> allpointsMap; public List allpoints; @@ -129,7 +131,10 @@ public abstract class CoordinateReader { if ( pointmap.put( n.name, n ) != null ) { - throw new IllegalArgumentException( "multiple " + n.name + "-positions!" ); + if ( !nogosOnly ) + { + throw new IllegalArgumentException( "multiple " + n.name + "-positions!" ); + } } } else if ( n.name != null && n.name.startsWith( "nogo" ) ) @@ -144,6 +149,11 @@ public abstract class CoordinateReader public static CoordinateReader obtainValidReader( String basedir, String segmentDir ) throws Exception + { + return obtainValidReader( basedir, segmentDir, false ); + } + + public static CoordinateReader obtainValidReader( String basedir, String segmentDir, boolean nogosOnly ) throws Exception { CoordinateReader cor = null; ArrayList rl = new ArrayList(); @@ -209,6 +219,7 @@ public abstract class CoordinateReader { cor = new CoordinateReaderNone(); } + cor.nogosOnly = nogosOnly; cor.readFromTo(); return cor; }