/// <summary> /// Loads an instance from a routing file. /// </summary> public static bool LoadInstance(FileInfo file) { try { if (!file.Exists) { return(false); } Logger.Log("Bootstrapper", TraceEventType.Information, "Loading instance {1} from: {0}", file.FullName, file.Name.GetNameUntilFirstDot()); if (file.Name.EndsWith("routerdb")) { RouterDb routerDb; using (var stream = File.OpenRead(file.FullName)) { routerDb = RouterDb.Deserialize(stream); } var multimodalDb = new MultimodalDb(routerDb, new TransitDb()); var multimodalRouter = new MultimodalRouter(multimodalDb, Itinero.Osm.Vehicles.Vehicle.Pedestrian.Fastest()); var instance = new Instances.Instance(multimodalRouter); InstanceManager.Register(file.Name.GetNameUntilFirstDot(), instance); } else if (file.Name.EndsWith("multimodaldb")) { MultimodalDb routerDb; using (var stream = File.OpenRead(file.FullName)) { routerDb = MultimodalDb.Deserialize(stream); } var multimodalRouter = new MultimodalRouter(routerDb, Itinero.Osm.Vehicles.Vehicle.Pedestrian.Fastest()); var instance = new Instances.Instance(multimodalRouter); InstanceManager.Register(file.Name.GetNameUntilFirstDot(), instance); } Logger.Log("Bootstrapper", TraceEventType.Information, "Loaded instance {1} from: {0}", file.FullName, file.Name.GetNameUntilFirstDot()); return(true); } catch (Exception ex) { Logger.Log("Bootstrapper", TraceEventType.Critical, "Failed to load file {0}: {1}", file, ex.ToInvariantString()); } return(false); }
public static void Main(string[] args) { Itinero.Logging.Logger.LogAction = (o, level, message, parameters) => { Log.Information(string.Format("[{0}] {1} - {2}", o, level, message)); }; // attach logger. Log.Logger = new LoggerConfiguration() .WriteTo.ColoredConsole() .CreateLogger(); // load multimodal db and extract tiles. var multimodalDb = MultimodalDb.Deserialize(File.OpenRead(@"C:\work\data\routing\belgium.multimodaldb")); var tile = Tiles.Tile.CreateAroundLocation(51.267966846313556f, 4.801913201808929f, 9); var tileRange = tile.GetSubTiles(14); var func = new Action(() => { foreach (var t in tileRange) { var config = new VectorTileConfig() { SegmentLayerConfig = new SegmentLayerConfig() { Name = "transportation" }, StopLayerConfig = new StopLayerConfig() { Name = "stops" } }; //Log.Information("Extracting tile: {0}", t.ToInvariantString()); var vectorTile = multimodalDb.ExtractTile(t.Id, config); //Log.Information("Writing tile: {0}", t.ToInvariantString()); using (var stream = File.Open(t.Id.ToInvariantString() + ".mvt", FileMode.Create)) { Itinero.VectorTiles.Mapbox.MapboxTileWriter.Write(vectorTile, stream); } } }); func.TestPerf(string.Format("Extracted and written {0} tiles.", tileRange.Count)); Console.ReadLine(); }