Routing algorithm
insert routing algorithm into server endpoint (controller/RoutinController.java)
Algorithm itself is located in model/shortestPath -> several classes: TurnRestrictedAStar overwrites methods of AStar to include turn restrictions, ExtendedEdge extends Edge just to access segment id, ProtobufToGraph converts road network to graph, NetworkReader reads road network protobuf file, Heuristic implements cost function (haversian distance)
Merge request reports
Activity
5 import java.util.List; 6 import java.util.Map; 7 8 import de.fuberlin.navigator.protos.map_builder.Coordinates; 9 10 import de.fuberlin.navigator.protos.map_builder.Node; 11 import de.fuberlin.navigator.protos.map_builder.Restriction; 12 import de.fuberlin.navigator.protos.map_builder.RoadCategory; 13 import de.fuberlin.navigator.protos.map_builder.RoadNetwork; 14 import de.fuberlin.navigator.protos.map_builder.Segment; 15 16 import java.io.FileOutputStream; 17 import java.io.IOException; 18 19 20 public class CreateExampleNetwork { changed this line in version 2 of the diff
13 import org.jgrapht.alg.shortestpath.AStarShortestPath; 14 15 import de.fuberlin.navigator.protos.map_builder.Node; 16 import de.fuberlin.navigator.routingserver.model.Coordinates; 17 import de.fuberlin.navigator.routingserver.model.RoutingRequest; 18 import de.fuberlin.navigator.routingserver.model.WeatherTag; 19 20 21 22 public class ApplyShortestPath { 23 24 static Graph graph = ProtobufToGraph.getGraphFromProto(); 25 26 27 28 public static void main(String[] args){ changed this line in version 2 of the diff
7 import java.util.List; 8 import java.util.Map; 9 import java.util.Set; 10 11 import org.jgrapht.Graph; 12 import org.jgrapht.GraphPath; 13 import org.jgrapht.alg.shortestpath.AStarShortestPath; 14 15 import de.fuberlin.navigator.protos.map_builder.Node; 16 import de.fuberlin.navigator.routingserver.model.Coordinates; 17 import de.fuberlin.navigator.routingserver.model.RoutingRequest; 18 import de.fuberlin.navigator.routingserver.model.WeatherTag; 19 20 21 22 public class ApplyShortestPath { changed this line in version 2 of the diff
1 package de.fuberlin.navigator.routingserver.model.shortestPath; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.IOException; 6 7 import de.fuberlin.navigator.protos.map_builder.RoadNetwork; 8 import de.fuberlin.navigator.protos.map_builder.RoadNetwork.Builder; 9 10 11 12 public class NetworkReader{ changed this line in version 2 of the diff
3 import java.util.HashMap; 4 import java.util.Map; 5 6 7 import org.jgrapht.Graph; 8 import org.jgrapht.graph.AbstractBaseGraph; 9 import org.jgrapht.graph.SimpleDirectedWeightedGraph; 10 11 import de.fuberlin.navigator.protos.map_builder.Node; 12 import de.fuberlin.navigator.protos.map_builder.RoadNetwork; 13 import de.fuberlin.navigator.protos.map_builder.Segment; 14 15 16 17 18 public class ProtobufToGraph { changed this line in version 2 of the diff
10 11 import org.jgrapht.alg.shortestpath.AStarShortestPath; 12 13 14 import org.jgrapht.*; 15 import org.jgrapht.alg.interfaces.*; 16 import org.jgrapht.graph.*; 17 import org.jgrapht.util.*; 18 19 import de.fuberlin.navigator.protos.map_builder.Restriction; 20 21 22 23 24 25 public class TurnRestrictedAStar<V, E> extends AStarShortestPath<V, E> { changed this line in version 2 of the diff
7 7 import java.nio.charset.StandardCharsets; 8 8 import java.util.Arrays; 9 9 import org.json.JSONObject; 10 import de.fuberlin.navigator.routingserver.model.Coordinates; 10 11 11 12 12 13 public class MapMatcher { changed this line in version 2 of the diff
mentioned in commit fbb9c705