diff --git a/brouter-core/pom.xml b/brouter-core/pom.xml
index 898f951..6add297 100644
--- a/brouter-core/pom.xml
+++ b/brouter-core/pom.xml
@@ -27,9 +27,5 @@
brouter-expressions
${project.version}
-
- junit
- junit
-
diff --git a/brouter-core/src/main/java/btools/router/RoutingContext.java b/brouter-core/src/main/java/btools/router/RoutingContext.java
index ff9c848..8b31ead 100644
--- a/brouter-core/src/main/java/btools/router/RoutingContext.java
+++ b/brouter-core/src/main/java/btools/router/RoutingContext.java
@@ -59,6 +59,7 @@ public final class RoutingContext implements DistanceChecker
public double changetime;
public double buffertime;
public double waittimeadjustment;
+ public double starttimeoffset;
public void readGlobalConfig( BExpressionContext expctxGlobal )
{
@@ -81,6 +82,7 @@ public final class RoutingContext implements DistanceChecker
changetime = expctxGlobal.getVariableValue( "changetime", 180.f );
buffertime = expctxGlobal.getVariableValue( "buffertime", 120.f );
waittimeadjustment = expctxGlobal.getVariableValue( "waittimeadjustment", 0.9f );
+ starttimeoffset = expctxGlobal.getVariableValue( "starttimeoffset", 0.f );
}
public RoutingMessageHandler messageHandler = new RoutingMessageHandler();
diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java
index 72c644b..d1fb894 100644
--- a/brouter-core/src/main/java/btools/router/RoutingEngine.java
+++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java
@@ -133,12 +133,14 @@ public class RoutingEngine extends Thread
startTime = System.currentTimeMillis();
this.maxRunningTime = maxRunningTime;
- OsmTrack sum = null;
+ int nsections = waypoints.size() - 1;
+ OsmTrack[] refTracks = new OsmTrack[nsections]; // used ways for alternatives
+ OsmTrack[] lastTracks = new OsmTrack[nsections];
OsmTrack track = null;
ArrayList messageList = new ArrayList();
for( int i=0; !terminated; i++ )
{
- track = findTrack( sum );
+ track = findTrack( refTracks, lastTracks );
track.message = "track-length = " + track.distance + " filtered ascend = " + track.ascend
+ " plain-ascend = " + track.plainAscend + " cost=" + track.cost;
track.name = "brouter_" + routingContext.getProfileName() + "_" + i;
@@ -152,8 +154,6 @@ public class RoutingEngine extends Thread
oldTrack.readGpx(filename);
if ( track.equalsTrack( oldTrack ) )
{
- if ( sum == null ) sum = new OsmTrack();
- sum.addNodes( track );
continue;
}
track.writeGpx( filename );
@@ -179,8 +179,6 @@ public class RoutingEngine extends Thread
}
else
{
- if ( sum == null ) sum = new OsmTrack();
- sum.addNodes( track );
continue;
}
}
@@ -240,14 +238,14 @@ public class RoutingEngine extends Thread
- private OsmTrack findTrack( OsmTrack refTrack )
+ private OsmTrack findTrack( OsmTrack[] refTracks, OsmTrack[] lastTracks )
{
OsmTrack totaltrack = new OsmTrack();
MatchedWaypoint[] wayointIds = new MatchedWaypoint[waypoints.size()];
// check for a track for that target
OsmTrack nearbyTrack = null;
- if ( refTrack == null )
+ if ( refTracks[waypoints.size()-2] == null )
{
nearbyTrack = OsmTrack.readBinary( routingContext.rawTrackPath, waypoints.get( waypoints.size()-1), routingContext.getNogoChecksums() );
if ( nearbyTrack != null )
@@ -267,9 +265,16 @@ public class RoutingEngine extends Thread
for( int i=0; i${project.version}
- junit
- junit
+ junit
+ junit
+ test
diff --git a/brouter-map-creator/pom.xml b/brouter-map-creator/pom.xml
index 9e5f7e7..9529d16 100644
--- a/brouter-map-creator/pom.xml
+++ b/brouter-map-creator/pom.xml
@@ -28,8 +28,9 @@
${project.version}
- junit
- junit
+ junit
+ junit
+ test
diff --git a/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java b/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java
index 4393a67..a531fa4 100644
--- a/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java
+++ b/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java
@@ -33,6 +33,8 @@ public final class NodesCache
public DistanceChecker distanceChecker;
public boolean oom_carsubset_hint = false;
+ public boolean first_file_access_failed = false;
+ public String first_file_access_name;
private long cacheSum = 0;
private boolean garbageCollectionEnabled = false;
@@ -48,6 +50,9 @@ public final class NodesCache
this.carMode = carMode;
this.forceSecondaryData = forceSecondaryData;
+ first_file_access_failed = false;
+ first_file_access_name = null;
+
if ( !this.segmentDir.isDirectory() ) throw new RuntimeException( "segment directory " + segmentDir + " does not exist" );
if ( oldCache != null )
@@ -249,6 +254,13 @@ public final class NodesCache
OsmFile osmf = new OsmFile( ra, tileIndex, iobuffer );
osmf.lonDegree = lonDegree;
osmf.latDegree = latDegree;
+
+ if ( first_file_access_name == null )
+ {
+ first_file_access_name = currentFileName;
+ first_file_access_failed = osmf.filename == null;
+ }
+
return osmf;
}
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 e730324..0cb00dc 100644
--- a/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java
+++ b/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java
@@ -102,6 +102,8 @@ public abstract class CoordinateReader
{
CoordinateReader cor = null;
ArrayList rl = new ArrayList();
+
+ AppLogger.log( "adding standard maptool-base: " + basedir );
rl.add( new CoordinateReaderOsmAnd(basedir) );
rl.add( new CoordinateReaderLocus(basedir) );
rl.add( new CoordinateReaderOrux(basedir) );
@@ -113,6 +115,7 @@ public abstract class CoordinateReader
String base2 = standardbase.getAbsolutePath();
if ( !base2.equals( basedir ) )
{
+ AppLogger.log( "adding internal sd maptool-base: " + base2 );
rl.add( new CoordinateReaderOsmAnd(base2) );
rl.add( new CoordinateReaderLocus(base2) );
rl.add( new CoordinateReaderOrux(base2) );
@@ -125,7 +128,7 @@ public abstract class CoordinateReader
{
String base3 = additional.getAbsolutePath();
- AppLogger.log( "additional maptool-base from storage-config: " + base3 );
+ AppLogger.log( "adding maptool-base from storage-config: " + base3 );
rl.add( new CoordinateReaderOsmAnd(base3) );
rl.add( new CoordinateReaderLocus(base3) );
@@ -135,6 +138,11 @@ public abstract class CoordinateReader
long tmax = 0;
for( CoordinateReader r : rl )
{
+ if ( AppLogger.isLogging() )
+ {
+ AppLogger.log( "reading timestamp at systime " + new Date() );
+ }
+
long t = r.getTimeStamp();
if ( t != 0 )
diff --git a/brouter-server/pom.xml b/brouter-server/pom.xml
index 21beed5..f0853b1 100644
--- a/brouter-server/pom.xml
+++ b/brouter-server/pom.xml
@@ -50,10 +50,11 @@
org.btools
brouter-map-creator
${project.version}
-
-
- junit
- junit
-
+
+
+ junit
+ junit
+ test
+
diff --git a/brouter-server/src/test/java/btools/server/RouterTest.java b/brouter-server/src/test/java/btools/server/RouterTest.java
index 6933536..3b4612e 100644
--- a/brouter-server/src/test/java/btools/server/RouterTest.java
+++ b/brouter-server/src/test/java/btools/server/RouterTest.java
@@ -39,7 +39,7 @@ public class RouterTest
msg = calcRoute( 8.720897, 50.002515, 16.723658, 49.997510, "notrack" );
- Assert.assertTrue( msg, msg != null && msg.indexOf( "not mapped" ) >= 0 );
+ Assert.assertTrue( msg, msg != null && msg.indexOf( "not found" ) >= 0 );
}
private String calcRoute( double flon, double flat, double tlon, double tlat, String trackname ) throws Exception
diff --git a/brouter-util/pom.xml b/brouter-util/pom.xml
index 8ab986b..899bca0 100644
--- a/brouter-util/pom.xml
+++ b/brouter-util/pom.xml
@@ -12,10 +12,10 @@
jar
-
- junit
- junit
-
-
-
+
+ junit
+ junit
+ test
+
+
diff --git a/brouter-util/src/main/java/btools/util/SortedHeap.java b/brouter-util/src/main/java/btools/util/SortedHeap.java
index 108fa3d..0337fb0 100644
--- a/brouter-util/src/main/java/btools/util/SortedHeap.java
+++ b/brouter-util/src/main/java/btools/util/SortedHeap.java
@@ -167,16 +167,21 @@ public class SortedHeap
// now merge the contents of arrays 0...idx-1 into idx
while ( cnt > 0 )
{
- int maxId = 0;
- int maxIdx = -1;
+ int i=0;
+ while( pa[i] == lp[i] )
+ {
+ i++;
+ }
+ int maxId = al[i][pa[i]-1];
+ int maxIdx = i;
- for ( int i=0; i<=idx; i++ )
+ for ( i++; i<=idx; i++ )
{
int p = pa[i];
if ( p > lp[i] )
{
int currentId = al[i][p-1];
- if ( maxIdx < 0 || currentId > maxId )
+ if ( currentId > maxId )
{
maxIdx = i;
maxId = currentId;
diff --git a/misc/profiles2/lookups.dat b/misc/profiles2/lookups.dat
index 18f6d42..67603f5 100644
--- a/misc/profiles2/lookups.dat
+++ b/misc/profiles2/lookups.dat
@@ -1,5 +1,5 @@
---lookupversion:10
----minorversion:3
+---minorversion:4
---readvarlength
---context:way
@@ -418,8 +418,21 @@ trail_visibility;0000023482 bad
trail_visibility;0000005853 horrible
trail_visibility;0000002222 no
-brouter_placeholder_dummy_07;0000000001 dummy
-brouter_placeholder_dummy_08;0000000001 dummy
+class:bicycle:mtb;0000002079 1 +1
+class:bicycle:mtb;0000001191 0
+class:bicycle:mtb;0000001089 2 +2
+class:bicycle:mtb;0000000703 -1
+class:bicycle:mtb;0000000234 -2
+class:bicycle:mtb;0000000140 3 +3
+class:bicycle:mtb;0000000068 -3
+
+class:bicycle;0000002842 1 +1
+class:bicycle;0000000595 -1
+class:bicycle;0000000533 2 +2
+class:bicycle;0000000516 -2
+class:bicycle;0000000245 -3
+class:bicycle;0000000170 0
+class:bicycle;0000000108 3 +3
route_bicycle_icn;0000088753 yes
route_bicycle_icn;0000000001 proposed
@@ -451,6 +464,40 @@ route_mtb_rcn;0000013321 yes
route_mtb_mtb;0000006853 yes
route_bicycle_mtb;0000002240 yes
+brouter_route_placeholder_dummy_01;0000000001 dummy
+brouter_route_placeholder_dummy_02;0000000001 dummy
+brouter_route_placeholder_dummy_03;0000000001 dummy
+brouter_route_placeholder_dummy_04;0000000001 dummy
+brouter_route_placeholder_dummy_05;0000000001 dummy
+brouter_route_placeholder_dummy_06;0000000001 dummy
+brouter_route_placeholder_dummy_07;0000000001 dummy
+brouter_route_placeholder_dummy_08;0000000001 dummy
+brouter_route_placeholder_dummy_09;0000000001 dummy
+brouter_route_placeholder_dummy_10;0000000001 dummy
+brouter_route_placeholder_dummy_11;0000000001 dummy
+brouter_route_placeholder_dummy_12;0000000001 dummy
+brouter_route_placeholder_dummy_13;0000000001 dummy
+brouter_route_placeholder_dummy_14;0000000001 dummy
+brouter_route_placeholder_dummy_15;0000000001 dummy
+brouter_route_placeholder_dummy_16;0000000001 dummy
+brouter_route_placeholder_dummy_17;0000000001 dummy
+brouter_route_placeholder_dummy_18;0000000001 dummy
+brouter_route_placeholder_dummy_19;0000000001 dummy
+brouter_route_placeholder_dummy_20;0000000001 dummy
+brouter_route_placeholder_dummy_21;0000000001 dummy
+
+ramp:bicycle;0000001305 yes both permissive right left
+ramp:bicycle;0000000385 no
+
+ramp:stroller;0000001099 yes
+ramp:stroller;0000000326 no
+
+ramp:wheelchair;0000000610 yes
+ramp:wheelchair;0000000439 no
+
+ramp:luggage;0000000162 no
+ramp:luggage;0000000054 yes automatic manual
+
---context:node
highway;0001314954 bus_stop
@@ -691,3 +738,6 @@ traffic_calming;0000004686 chicane
traffic_calming;0000004032 rumble_strip
traffic_calming;0000000847 speed_bump
traffic_calming;0000000186 dip
+
+ford;0000037927 yes
+ford;0000000310 stepping_stones