/// <summary> /// Initializes a new instance of the <see cref="Engine"/> class. /// </summary> protected Engine() { // keeps a memory-efficient version of the osm-tags. var tagsIndex = new OsmTagsIndex(); // creates a routing interpreter. (used to translate osm-tags into a routable network) interpreter = new OsmRoutingInterpreter(); // create a routing datasource, keeps all processed osm routing data. var osmData = new MemoryRouterDataSource <SimpleWeighedEdge>(tagsIndex); // load data into this routing datasource. var fileSource = HostingEnvironment.MapPath("~/App_Data/Manchester.osm.pbf"); Stream osmXmlData = new FileInfo(fileSource).OpenRead(); // for example moscow! using (osmXmlData) { var targetData = new SimpleWeighedDataGraphProcessingTarget( osmData, interpreter, osmData.TagsIndex, VehicleEnum.Car); // replace this with PBFdataProcessSource when having downloaded a PBF file. var dataProcessorSource = new OsmSharp.Osm.Data.PBF.Raw.Processor.PBFDataProcessorSource(osmXmlData); // pre-process the data. var sorter = new DataProcessorFilterSort(); sorter.RegisterSource(dataProcessorSource); targetData.RegisterSource(sorter); targetData.Pull(); } // create the router object: there all routing functions are available. router = new Router <SimpleWeighedEdge>( osmData, interpreter, new DykstraRoutingLive(osmData.TagsIndex)); }
/// <summary> /// Initializes a new instance of the <see cref="Engine"/> class. /// </summary> protected Engine() { // keeps a memory-efficient version of the osm-tags. var tagsIndex = new OsmTagsIndex(); // creates a routing interpreter. (used to translate osm-tags into a routable network) interpreter = new OsmRoutingInterpreter(); // create a routing datasource, keeps all processed osm routing data. var osmData = new MemoryRouterDataSource<SimpleWeighedEdge>(tagsIndex); // load data into this routing datasource. var fileSource = HostingEnvironment.MapPath("~/App_Data/Manchester.osm.pbf"); Stream osmXmlData = new FileInfo(fileSource).OpenRead(); // for example moscow! using (osmXmlData) { var targetData = new SimpleWeighedDataGraphProcessingTarget( osmData, interpreter, osmData.TagsIndex, VehicleEnum.Car); // replace this with PBFdataProcessSource when having downloaded a PBF file. var dataProcessorSource = new OsmSharp.Osm.Data.PBF.Raw.Processor.PBFDataProcessorSource(osmXmlData); // pre-process the data. var sorter = new DataProcessorFilterSort(); sorter.RegisterSource(dataProcessorSource); targetData.RegisterSource(sorter); targetData.Pull(); } // create the router object: there all routing functions are available. router = new Router<SimpleWeighedEdge>( osmData, interpreter, new DykstraRoutingLive(osmData.TagsIndex)); }