/// <summary> /// Creates a router using interpreted edges. /// </summary> /// <param name="data">The data to route on.</param> /// <param name="interpreter">The routing interpreter.</param> /// <returns></returns> public static Router CreateFrom(IRoutingAlgorithmData <Edge> data, IRoutingInterpreter interpreter) { // creates the edge router. var typedRouter = new TypedRouterEdge( data, interpreter, new Dykstra()); return(new Router(typedRouter)); // create the actual router. }
/// <summary> /// Creates a router using interpreted edges. /// </summary> /// <param name="reader">The OSM-stream reader.</param> /// <param name="interpreter">The routing interpreter.</param> /// <returns></returns> public static Router CreateFrom(OsmStreamSource reader, IOsmRoutingInterpreter interpreter) { var tagsIndex = new TagsIndex(); // creates a tagged index. // read from the OSM-stream. var memoryData = new RouterDataSource<Edge>(new Graph<Edge>(), tagsIndex); var targetData = new GraphOsmStreamTarget(memoryData, interpreter, tagsIndex); targetData.RegisterSource(reader); targetData.Pull(); // creates the edge router. var typedRouter = new TypedRouterEdge( memoryData, interpreter, new Dykstra()); return new Router(typedRouter); // create the actual router. }
/// <summary> /// Creates a router using interpreted edges. /// </summary> /// <param name="reader">The OSM-stream reader.</param> /// <param name="interpreter">The routing interpreter.</param> /// <returns></returns> public static Router CreateFrom(OsmStreamSource reader, IOsmRoutingInterpreter interpreter) { var tagsIndex = new TagsIndex(); // creates a tagged index. // read from the OSM-stream. var memoryData = new RouterDataSource <Edge>(new Graph <Edge>(), tagsIndex); var targetData = new GraphOsmStreamTarget(memoryData, interpreter, tagsIndex); targetData.RegisterSource(reader); targetData.Pull(); // creates the edge router. var typedRouter = new TypedRouterEdge( memoryData, interpreter, new Dykstra()); return(new Router(typedRouter)); // create the actual router. }
/// <summary> /// Creates a router using interpreted edges. /// </summary> /// <param name="data">The data to route on.</param> /// <param name="basicRouter">A custom routing implementation.</param> /// <param name="interpreter">The routing interpreter.</param> /// <returns></returns> public static Router CreateFrom(IRoutingAlgorithmData<Edge> data, IRoutingAlgorithm<Edge> basicRouter, IRoutingInterpreter interpreter) { // creates the edge router. var typedRouter = new TypedRouterEdge( data, interpreter, basicRouter); return new Router(typedRouter); // create the actual router. }