Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
e596b1f108
4 changed files with 27 additions and 18 deletions
|
@ -57,10 +57,13 @@ public class BinaryInspector {
|
||||||
if(args.length == 1 && "test".equals(args[0])) {
|
if(args.length == 1 && "test".equals(args[0])) {
|
||||||
in.inspector(new String[]{
|
in.inspector(new String[]{
|
||||||
//"-vpoi",
|
//"-vpoi",
|
||||||
// "-vmap", "-vmapobjects",
|
//"-vmap", "-vmapobjects",
|
||||||
//"-vstreets",
|
//"-vaddress", "-vcities", "-vstreets", "-vstreetgroups","-vbuildings",
|
||||||
|
//"-zoom=16",
|
||||||
//"-bbox=4,55,7,50",
|
//"-bbox=4,55,7,50",
|
||||||
"/home/victor/projects/osmand/osm-gen/Map.obf"});
|
//"/home/victor/osmand/Test.obf"
|
||||||
|
//"/home/victor/projects/osmand/osm-gen/Map.obf"
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
in.inspector(args);
|
in.inspector(args);
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,10 +156,7 @@ public class RoutePlannerFrontEnd {
|
||||||
|
|
||||||
private List<RouteSegmentResult> searchRouteInternalPrepare(final RoutingContext ctx, RouteSegment start, RouteSegment end,
|
private List<RouteSegmentResult> searchRouteInternalPrepare(final RoutingContext ctx, RouteSegment start, RouteSegment end,
|
||||||
PrecalculatedRouteDirection routeDirection) throws IOException, InterruptedException {
|
PrecalculatedRouteDirection routeDirection) throws IOException, InterruptedException {
|
||||||
ctx.targetX = end.road.getPoint31XTile(end.getSegmentStart());
|
ctx.initStartAndTargetPoints(start, end);
|
||||||
ctx.targetY = end.road.getPoint31YTile(end.getSegmentStart());
|
|
||||||
ctx.startX = start.road.getPoint31XTile(start.getSegmentStart());
|
|
||||||
ctx.startY = start.road.getPoint31YTile(start.getSegmentStart());
|
|
||||||
if(routeDirection != null) {
|
if(routeDirection != null) {
|
||||||
ctx.precalculatedRouteDirection = routeDirection.adopt(ctx);
|
ctx.precalculatedRouteDirection = routeDirection.adopt(ctx);
|
||||||
}
|
}
|
||||||
|
@ -178,6 +175,7 @@ public class RoutePlannerFrontEnd {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void refreshProgressDistance(RoutingContext ctx) {
|
private void refreshProgressDistance(RoutingContext ctx) {
|
||||||
if(ctx.calculationProgress != null) {
|
if(ctx.calculationProgress != null) {
|
||||||
ctx.calculationProgress.distanceFromBegin = 0;
|
ctx.calculationProgress.distanceFromBegin = 0;
|
||||||
|
|
|
@ -78,7 +78,7 @@ public class RoutingContext {
|
||||||
// 3. Warm object caches
|
// 3. Warm object caches
|
||||||
ArrayList<RouteSegment> segmentsToVisitPrescripted = new ArrayList<BinaryRoutePlanner.RouteSegment>(5);
|
ArrayList<RouteSegment> segmentsToVisitPrescripted = new ArrayList<BinaryRoutePlanner.RouteSegment>(5);
|
||||||
ArrayList<RouteSegment> segmentsToVisitNotForbidden = new ArrayList<BinaryRoutePlanner.RouteSegment>(5);
|
ArrayList<RouteSegment> segmentsToVisitNotForbidden = new ArrayList<BinaryRoutePlanner.RouteSegment>(5);
|
||||||
|
|
||||||
|
|
||||||
// 5. debug information (package accessor)
|
// 5. debug information (package accessor)
|
||||||
public TileStatistics global = new TileStatistics();
|
public TileStatistics global = new TileStatistics();
|
||||||
|
@ -106,7 +106,10 @@ public class RoutingContext {
|
||||||
// old planner
|
// old planner
|
||||||
public FinalRouteSegment finalRouteSegment;
|
public FinalRouteSegment finalRouteSegment;
|
||||||
|
|
||||||
public RoutingContext(RoutingContext cp) {
|
|
||||||
|
|
||||||
|
|
||||||
|
RoutingContext(RoutingContext cp) {
|
||||||
this.config = cp.config;
|
this.config = cp.config;
|
||||||
this.map.putAll(cp.map);
|
this.map.putAll(cp.map);
|
||||||
this.calculationMode = cp.calculationMode;
|
this.calculationMode = cp.calculationMode;
|
||||||
|
@ -131,11 +134,7 @@ public class RoutingContext {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public RoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map) {
|
RoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map, RouteCalculationMode calcMode) {
|
||||||
this(config, nativeLibrary, map, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public RoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map, RouteCalculationMode calcMode) {
|
|
||||||
this.calculationMode = calcMode;
|
this.calculationMode = calcMode;
|
||||||
for (BinaryMapIndexReader mr : map) {
|
for (BinaryMapIndexReader mr : map) {
|
||||||
List<RouteRegion> rr = mr.getRoutingIndexes();
|
List<RouteRegion> rr = mr.getRoutingIndexes();
|
||||||
|
@ -207,6 +206,13 @@ public class RoutingContext {
|
||||||
config.heuristicCoefficient);
|
config.heuristicCoefficient);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void initStartAndTargetPoints(RouteSegment start, RouteSegment end) {
|
||||||
|
targetX = end.road.getPoint31XTile(end.getSegmentStart());
|
||||||
|
targetY = end.road.getPoint31YTile(end.getSegmentStart());
|
||||||
|
startX = start.road.getPoint31XTile(start.getSegmentStart());
|
||||||
|
startY = start.road.getPoint31YTile(start.getSegmentStart());
|
||||||
|
}
|
||||||
|
|
||||||
public void registerRouteDataObject(RouteDataObject o ) {
|
public void registerRouteDataObject(RouteDataObject o ) {
|
||||||
if(!getRouter().acceptLine(o)){
|
if(!getRouter().acceptLine(o)){
|
||||||
return;
|
return;
|
||||||
|
@ -459,8 +465,9 @@ public class RoutingContext {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TLongIterator it = ts.iterator();
|
TLongIterator it = ts.iterator();
|
||||||
|
TLongObjectHashMap<RouteDataObject> excludeDuplications = new TLongObjectHashMap<RouteDataObject>();
|
||||||
while(it.hasNext()){
|
while(it.hasNext()){
|
||||||
getAllObjects(it.next(), toFillIn);
|
getAllObjects(it.next(), toFillIn, excludeDuplications);
|
||||||
}
|
}
|
||||||
timeToFindInitialSegments += (System.nanoTime() - now);
|
timeToFindInitialSegments += (System.nanoTime() - now);
|
||||||
}
|
}
|
||||||
|
@ -573,8 +580,7 @@ public class RoutingContext {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getAllObjects(long tileId, final List<RouteDataObject> toFillIn) {
|
private void getAllObjects(long tileId, final List<RouteDataObject> toFillIn, TLongObjectHashMap<RouteDataObject> excludeDuplications) {
|
||||||
TLongObjectHashMap<RouteDataObject> excludeDuplications = new TLongObjectHashMap<RouteDataObject>();
|
|
||||||
if (tileRoutes.containsKey(tileId)) {
|
if (tileRoutes.containsKey(tileId)) {
|
||||||
List<RouteDataObject> routes = tileRoutes.get(tileId);
|
List<RouteDataObject> routes = tileRoutes.get(tileId);
|
||||||
if (routes != null) {
|
if (routes != null) {
|
||||||
|
@ -843,5 +849,7 @@ public class RoutingContext {
|
||||||
return map.keySet().toArray(new BinaryMapIndexReader[map.size()]);
|
return map.keySet().toArray(new BinaryMapIndexReader[map.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -37,7 +37,7 @@ public class CurrentPositionHelper {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
RoutingConfiguration cfg = RoutingConfiguration.getDefault().build(p.name().toLowerCase(), 10);
|
RoutingConfiguration cfg = RoutingConfiguration.getDefault().build(p.name().toLowerCase(), 10);
|
||||||
ctx = new RoutingContext(cfg, null, app.getTodoAPI().getRoutingMapFiles());
|
ctx = new RoutePlannerFrontEnd(false).buildRoutingContext(cfg, null, app.getTodoAPI().getRoutingMapFiles());
|
||||||
}
|
}
|
||||||
|
|
||||||
private RouteDataObject runUpdateInThread(Location loc) {
|
private RouteDataObject runUpdateInThread(Location loc) {
|
||||||
|
|
Loading…
Reference in a new issue