From f9f08cc0b71ebb0dc85cbcc4a36057598456c397 Mon Sep 17 00:00:00 2001 From: Arndt Brenschede Date: Sun, 30 Jun 2019 17:34:21 +0200 Subject: [PATCH] 1.5.0 preparations --- brouter-codec/pom.xml | 2 +- brouter-core/pom.xml | 2 +- .../src/main/java/btools/router/OsmTrack.java | 2 +- .../java/btools/router/RoutingEngine.java | 57 +++++++++--------- brouter-expressions/pom.xml | 2 +- brouter-map-creator/pom.xml | 2 +- brouter-mapaccess/pom.xml | 2 +- .../java/btools/mapaccess/NodesCache.java | 2 +- .../java/btools/mapaccess/OsmNodesMap.java | 3 +- brouter-routing-app/AndroidManifest.xml | 6 +- brouter-routing-app/assets/profiles2.zip | Bin 31076 -> 33486 bytes brouter-routing-app/assets/readmes.zip | Bin 9488 -> 9679 bytes brouter-routing-app/pom.xml | 8 +-- brouter-routing-app/project.properties | 2 +- .../java/btools/routingapp/BRouterView.java | 4 +- .../java/btools/routingapp/BRouterWorker.java | 2 + .../btools/routingapp/CoordinateReader.java | 1 + brouter-server/pom.xml | 2 +- .../src/main/java/btools/server/BRouter.java | 2 +- .../main/java/btools/server/RouteServer.java | 2 +- brouter-util/pom.xml | 2 +- pom.xml | 4 +- 22 files changed, 57 insertions(+), 52 deletions(-) diff --git a/brouter-codec/pom.xml b/brouter-codec/pom.xml index cef5728..803dcc1 100644 --- a/brouter-codec/pom.xml +++ b/brouter-codec/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-codec diff --git a/brouter-core/pom.xml b/brouter-core/pom.xml index 9678493..c683efa 100644 --- a/brouter-core/pom.xml +++ b/brouter-core/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-core diff --git a/brouter-core/src/main/java/btools/router/OsmTrack.java b/brouter-core/src/main/java/btools/router/OsmTrack.java index 631b49b..b4987f9 100644 --- a/brouter-core/src/main/java/btools/router/OsmTrack.java +++ b/brouter-core/src/main/java/btools/router/OsmTrack.java @@ -435,7 +435,7 @@ public final class OsmTrack } else { - sb.append( " creator=\"BRouter-1.4.11\" version=\"1.1\">\n" ); + sb.append( " creator=\"BRouter-1.5.0\" version=\"1.1\">\n" ); } if ( turnInstructionMode == 3) // osmand style diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index 67bfb77..4b887bb 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -62,7 +62,7 @@ public class RoutingEngine extends Thread private Object[] extract; - private boolean directWeaving = Boolean.getBoolean( "directWeaving" ); + private boolean directWeaving = !Boolean.getBoolean( "disableDirectWeaving" ); public RoutingEngine( String outfileBase, String logfileBase, String segmentDir, List waypoints, RoutingContext rc ) @@ -808,21 +808,21 @@ public class RoutingEngine extends Thread synchronized( openSet ) { path = openSet.popLowestKeyValue(); - } - if ( path == null ) - { - if ( openBorderList.isEmpty() ) + if ( path == null ) { - break; + if ( openBorderList.isEmpty() ) + { + break; + } + for( OsmPath p : openBorderList ) + { + openSet.add( p.cost + (int)(p.airdistance*airDistanceCostFactor), p ); + } + openBorderList.clear(); + memoryPanicMode = false; + needNonPanicProcessing = true; + continue; } - for( OsmPath p : openBorderList ) - { - openSet.add( p.cost + (int)(p.airdistance*airDistanceCostFactor), p ); - } - openBorderList.clear(); - memoryPanicMode = false; - needNonPanicProcessing = true; - continue; } if ( path.airdistance == -1 ) @@ -841,29 +841,32 @@ public class RoutingEngine extends Thread int pathsBefore = openSet.getSize(); nodesCache.nodesMap.collectOutreachers(); - for(;;) + synchronized( openSet ) { - OsmPath p3 = openSet.popLowestKeyValue(); - if ( p3 == null ) break; - if ( p3.airdistance != -1 && nodesCache.nodesMap.canEscape( p3.getTargetNode() ) ) + for(;;) { - openBorderList.add( p3 ); + OsmPath p3 = openSet.popLowestKeyValue(); + if ( p3 == null ) break; + if ( p3.airdistance != -1 && nodesCache.nodesMap.canEscape( p3.getTargetNode() ) ) + { + openBorderList.add( p3 ); + } + } + for( OsmPath p : openBorderList ) + { + openSet.add( p.cost + (int)(p.airdistance*airDistanceCostFactor), p ); } } - for( OsmPath p : openBorderList ) - { - openSet.add( p.cost + (int)(p.airdistance*airDistanceCostFactor), p ); - } openBorderList.clear(); -System.out.println( "collected, nodes/paths before=" + nodesBefore + "/" + pathsBefore + " after=" + nodesCache.nodesMap.nodesCreated + "/" + openSet.getSize() ); + logInfo( "collected, nodes/paths before=" + nodesBefore + "/" + pathsBefore + " after=" + nodesCache.nodesMap.nodesCreated + "/" + openSet.getSize() + " maxTotalCost=" + maxTotalCost ); if ( !nodesCache.nodesMap.isInMemoryBounds( openSet.getSize()) ) // TODO { - if ( maxTotalCost < 1000000000 || needNonPanicProcessing ) + if ( maxTotalCost < 1000000000 || needNonPanicProcessing || fastPartialRecalc ) { throw new IllegalArgumentException( "memory limit reached" ); } memoryPanicMode = true; - System.out.println( "************************ memory limit reached, enabled memory panic mode *************************" ); + logInfo( "************************ memory limit reached, enabled memory panic mode *************************" ); } } } @@ -1248,7 +1251,7 @@ System.out.println( "collected, nodes/paths before=" + nodesBefore + "/" + paths private OsmTrack mergeTrack( OsmPathElement match, OsmTrack oldTrack ) { -System.out.println( "**************** merging match=" + match.cost + " with oldTrack=" + oldTrack.cost ); + logInfo( "**************** merging match=" + match.cost + " with oldTrack=" + oldTrack.cost ); OsmPathElement element = match; OsmTrack track = new OsmTrack(); track.cost = oldTrack.cost; diff --git a/brouter-expressions/pom.xml b/brouter-expressions/pom.xml index 9287517..27cdb55 100644 --- a/brouter-expressions/pom.xml +++ b/brouter-expressions/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-expressions diff --git a/brouter-map-creator/pom.xml b/brouter-map-creator/pom.xml index 5c78b20..ead3d77 100644 --- a/brouter-map-creator/pom.xml +++ b/brouter-map-creator/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-map-creator diff --git a/brouter-mapaccess/pom.xml b/brouter-mapaccess/pom.xml index bc09583..a93b774 100644 --- a/brouter-mapaccess/pom.xml +++ b/brouter-mapaccess/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-mapaccess diff --git a/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java b/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java index 93a9b1c..ebf4fe9 100644 --- a/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java +++ b/brouter-mapaccess/src/main/java/btools/mapaccess/NodesCache.java @@ -49,7 +49,7 @@ public final class NodesCache private long ghostSum = 0; private long ghostWakeup = 0; - private boolean directWeaving = Boolean.getBoolean( "directWeaving" ); + private boolean directWeaving = !Boolean.getBoolean( "disableDirectWeaving" ); public String formatStatus() { diff --git a/brouter-mapaccess/src/main/java/btools/mapaccess/OsmNodesMap.java b/brouter-mapaccess/src/main/java/btools/mapaccess/OsmNodesMap.java index 723a4cd..4a9360f 100644 --- a/brouter-mapaccess/src/main/java/btools/mapaccess/OsmNodesMap.java +++ b/brouter-mapaccess/src/main/java/btools/mapaccess/OsmNodesMap.java @@ -73,7 +73,7 @@ public final class OsmNodesMap } catch( StackOverflowError soe ) { - System.out.println( "+++++++++++++++ StackOverflowError ++++++++++++++++" ); + // System.out.println( "+++++++++++++++ StackOverflowError ++++++++++++++++" ); } } } @@ -196,7 +196,6 @@ public final class OsmNodesMap { nodesCreated=0; -System.out.println( "collectOutreachers, currentMaxCost=" + currentMaxCost ); ArrayList nodes2check = new ArrayList(); for( OsmNode n : hmap.values() ) { diff --git a/brouter-routing-app/AndroidManifest.xml b/brouter-routing-app/AndroidManifest.xml index 0cd0e94..450ac8f 100644 --- a/brouter-routing-app/AndroidManifest.xml +++ b/brouter-routing-app/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="27" + android:versionName="1.5.0" package="btools.routingapp"> - + diff --git a/brouter-routing-app/assets/profiles2.zip b/brouter-routing-app/assets/profiles2.zip index 716408562f3eb896532319fe8630f875a9ebce91..0ff9faea3d34891174cfbb829aa146a0d87b2021 100644 GIT binary patch delta 23212 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�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 S9_D(m0A7FqfG7TkPyYel!c#W@ diff --git a/brouter-routing-app/assets/readmes.zip b/brouter-routing-app/assets/readmes.zip index 0d5f9bd03f83ea3211f89fbff094d78f75426e80..318d23ffef0e07bf809791a3153ba62d7ac250e2 100644 GIT binary patch delta 8202 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 OU+FLqF6jQd`+opJDY2>m delta 8027 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 diff --git a/brouter-routing-app/pom.xml b/brouter-routing-app/pom.xml index f44d57d..0e8a2e4 100644 --- a/brouter-routing-app/pom.xml +++ b/brouter-routing-app/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-routing-app @@ -60,9 +60,9 @@ ${project.build.directory}/${project.artifactId}.apk \sign\mystore - abrensch - peru1511 - peru1511 + myalias + mypasswd + mypasswd true diff --git a/brouter-routing-app/project.properties b/brouter-routing-app/project.properties index f049142..29e368b 100644 --- a/brouter-routing-app/project.properties +++ b/brouter-routing-app/project.properties @@ -8,4 +8,4 @@ # project structure. # Project target. -target=android-10 +target=android-28 diff --git a/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java b/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java index 06bd320..41796ac 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java @@ -174,7 +174,7 @@ public class BRouterView extends View String basedir = fbd.getAbsolutePath(); AppLogger.log( "using basedir: " + basedir ); - String version = "v1.4.11"; + String version = "v1.5.0"; // create missing directories assertDirectoryExists( "project directory", basedir + "/brouter", null, null ); @@ -807,7 +807,7 @@ public class BRouterView extends View else { String memstat = memoryClass + "mb pathPeak " + ((cr.getPathPeak()+500)/1000) + "k"; - String result = "version = BRouter-1.4.11\n" + "mem = " + memstat + "\ndistance = " + cr.getDistance() / 1000. + " km\n" + "filtered ascend = " + cr.getAscend() + String result = "version = BRouter-1.5.0\n" + "mem = " + memstat + "\ndistance = " + cr.getDistance() / 1000. + " km\n" + "filtered ascend = " + cr.getAscend() + " m\n" + "plain ascend = " + cr.getPlainAscend() + " m\n" + "estimated time = " + cr.getTime(); rawTrack = cr.getFoundRawTrack(); diff --git a/brouter-routing-app/src/main/java/btools/routingapp/BRouterWorker.java b/brouter-routing-app/src/main/java/btools/routingapp/BRouterWorker.java index cbcb67c..cfd5d4c 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/BRouterWorker.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/BRouterWorker.java @@ -165,6 +165,8 @@ public class BRouterWorker n.ilon = (int)( ( lons[i] + 180. ) *1000000. + 0.5); n.ilat = (int)( ( lats[i] + 90. ) *1000000. + 0.5); n.isNogo = true; + n.nogoWeight = Double.NaN; + AppLogger.log( "added interface provided nogo: " + n ); nogoList.add( n ); } } 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 b15cb28..ccfca86 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/CoordinateReader.java @@ -140,6 +140,7 @@ public abstract class CoordinateReader else if ( n.name != null && n.name.startsWith( "nogo" ) ) { n.isNogo = true; + n.nogoWeight = Double.NaN; nogopoints.add( n ); } diff --git a/brouter-server/pom.xml b/brouter-server/pom.xml index 0d36e4e..cfccc68 100644 --- a/brouter-server/pom.xml +++ b/brouter-server/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-server diff --git a/brouter-server/src/main/java/btools/server/BRouter.java b/brouter-server/src/main/java/btools/server/BRouter.java index 1481db9..33a96b3 100644 --- a/brouter-server/src/main/java/btools/server/BRouter.java +++ b/brouter-server/src/main/java/btools/server/BRouter.java @@ -88,7 +88,7 @@ public class BRouter } System.exit(0); } - System.out.println("BRouter 1.4.11 / 02042018"); + System.out.println("BRouter 1.5.0 / 30062019"); if ( args.length < 6 ) { System.out.println("Find routes in an OSM map"); diff --git a/brouter-server/src/main/java/btools/server/RouteServer.java b/brouter-server/src/main/java/btools/server/RouteServer.java index a4536cf..e92c1b8 100644 --- a/brouter-server/src/main/java/btools/server/RouteServer.java +++ b/brouter-server/src/main/java/btools/server/RouteServer.java @@ -260,7 +260,7 @@ public class RouteServer extends Thread public static void main(String[] args) throws Exception { - System.out.println("BRouter 1.4.11 / 02042018"); + System.out.println("BRouter 1.5.0 / 30062019"); if ( args.length != 5 && args.length != 6) { System.out.println("serve BRouter protocol"); diff --git a/brouter-util/pom.xml b/brouter-util/pom.xml index 7724d8b..78da59f 100644 --- a/brouter-util/pom.xml +++ b/brouter-util/pom.xml @@ -5,7 +5,7 @@ org.btools brouter - 1.4.11 + 1.5.0 ../pom.xml brouter-util diff --git a/pom.xml b/pom.xml index 2a646fe..eae5271 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 org.btools brouter - 1.4.11 + 1.5.0 pom http://brouter.de/brouter/ brouter @@ -53,7 +53,7 @@ gen true - 10 + 28