Advertisement
Guest User

Untitled

a guest
Apr 20th, 2014
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. forwardEdge = bestWeightMapFrom.get(viaNode);
  2. reverseEdge = bestWeightMapTo.get(viaNode);
  3.  
  4. double unpackedUntilDistance = 0;
  5. while(forwardEdge.edge != -1) {
  6. double parentDist = forwardEdge.parent != null ? forwardEdge.parent.distance : 0;
  7. double dist = forwardEdge.distance - parentDist;
  8. if(unpackedUntilDistance + dist >= T_THRESHOLD) {
  9. EdgeSkipIterState edgeState = (EdgeSkipIterState) graph.getEdgeProps(forwardEdge.edge, forwardEdge.adjNode);
  10. unpackStack.add(new EdgePair(edgeState, false));
  11. sV = forwardEdge.adjNode;
  12. forwardEdge = forwardEdge.parent;
  13. break;
  14. }
  15. else {
  16. unpackedUntilDistance += dist;
  17. forwardEdge = forwardEdge.parent;
  18. sV = forwardEdge.adjNode;
  19. }
  20. }
  21. int oldSV = forwardEdge.adjNode;
  22. EdgeEntry oldForwardEdge = forwardEdge;
  23.  
  24. PathBidirRef p = (PathBidirRef) algo.calcPath(oldSV, oldVT);
  25.  
  26. Path4CHAlt p1 = new Path4CHAlt(graph, flagEncoder);
  27. p1.setSwitchToFrom(false);
  28. p1.setEdgeEntry(oldForwardEdge);
  29. p1.segmentEdgeEntry = p.edgeEntry;
  30. double weight = oldForwardEdge.weight + oldReverseEdge.weight + p.edgeEntry.weight + p.edgeTo.weight;
  31. p1.setWeight(weight);
  32. p1.edgeTo = oldReverseEdge;
  33. p1.segmentEdgeTo = p.edgeTo;
  34. Path p2 = p1.extract();
  35.  
  36. public class Path4CHAlt extends Path4CH {
  37. private boolean switchWrapper = false;
  38. public EdgeEntry segmentEdgeTo;
  39. public EdgeEntry segmentEdgeEntry;
  40.  
  41. public Path4CHAlt( Graph g, FlagEncoder encoder )
  42. {
  43. super(g, encoder);
  44. }
  45.  
  46. public Path4CHAlt setSwitchToFrom( boolean b )
  47. {
  48. switchWrapper = b;
  49. return this;
  50. }
  51.  
  52. @Override
  53. public Path extract()
  54. {
  55. System.out.println("Path4CHAlt extract");
  56. if (edgeEntry == null || edgeTo == null || segmentEdgeEntry == null || segmentEdgeTo == null)
  57. return this;
  58.  
  59. if (switchWrapper)
  60. {
  61. EdgeEntry ee = edgeEntry;
  62. edgeEntry = edgeTo;
  63. edgeTo = ee;
  64.  
  65. ee = segmentEdgeEntry;
  66. segmentEdgeEntry = segmentEdgeTo;
  67. segmentEdgeTo = ee;
  68. }
  69.  
  70. EdgeEntry currEdge = segmentEdgeEntry;
  71. while (EdgeIterator.Edge.isValid(currEdge.edge))
  72. {
  73. processEdge(currEdge.edge, currEdge.adjNode);
  74. currEdge = currEdge.parent;
  75. }
  76. currEdge.parent = edgeEntry;
  77.  
  78. currEdge = edgeEntry;
  79. while (EdgeIterator.Edge.isValid(currEdge.edge))
  80. {
  81. processEdge(currEdge.edge, currEdge.adjNode);
  82. currEdge = currEdge.parent;
  83. }
  84. setFromNode(currEdge.adjNode);
  85. reverseOrder();
  86.  
  87. currEdge = segmentEdgeTo;
  88. int tmpEdge = currEdge.edge;
  89. while (EdgeIterator.Edge.isValid(tmpEdge))
  90. {
  91. currEdge = currEdge.parent;
  92. processEdge(tmpEdge, currEdge.adjNode);
  93. tmpEdge = currEdge.edge;
  94. }
  95.  
  96. currEdge.parent = edgeTo;
  97.  
  98. currEdge = edgeTo;
  99. tmpEdge = currEdge.edge;
  100. while (EdgeIterator.Edge.isValid(tmpEdge))
  101. {
  102. currEdge = currEdge.parent;
  103. processEdge(tmpEdge, currEdge.adjNode);
  104. tmpEdge = currEdge.edge;
  105. }
  106. setEndNode(currEdge.adjNode);
  107. return setFound(true);
  108. }
  109. }
  110.  
  111. java.lang.NullPointerException
  112. at com.graphhopper.routing.ch.Path4CH.expandEdge(Path4CH.java:62)
  113. at com.graphhopper.routing.ch.Path4CH.processEdge(Path4CH.java:56)
  114. at com.graphhopper.routing.PathBidirRef.extract(PathBidirRef.java:95)
  115. at com.graphhopper.routing.DijkstraBidirectionRef.extractPath(DijkstraBidirectionRef.java:99)
  116. at com.graphhopper.routing.AbstractBidirAlgo.runAlgo(AbstractBidirAlgo.java:74)
  117. at com.graphhopper.routing.AbstractBidirAlgo.calcPath(AbstractBidirAlgo.java:60)
  118.  
  119. java.lang.IllegalStateException: Edge 1506012 was empty when requested with node 1289685, array index:0, edges:318
  120. at com.graphhopper.routing.Path.forEveryEdge(Path.java:253)
  121. at com.graphhopper.routing.Path.calcInstructions(Path.java:349)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement