Skip to content
Snippets Groups Projects

Routing algorithm

Merged yolas01 requested to merge routing_algorithm into main
8 unresolved threads

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

Merged by yolas01yolas01 2 years ago (Mar 17, 2023 1:42pm UTC)

Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
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 {
  • 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){
  • 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 {
  • 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{
  • 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 {
  • 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> {
  • 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 {
  • Looks good to me accept the few comments I gave

  • yolas01 added 4 commits

    added 4 commits

    • 0620f864 - move classes to utilility package
    • 1ddd07ef - change to public
    • 52c2d19e - move example road network for testing
    • c956cc75 - move classes to utility package

    Compare with previous version

  • theiled00 approved this merge request

    approved this merge request

  • yolas01 mentioned in commit fbb9c705

    mentioned in commit fbb9c705

  • merged

  • Please register or sign in to reply
    Loading