/// <summary> /// Creates a new edge difference calculator. /// </summary> /// <param name="data"></param> /// <param name="witness_calculator"></param> public EdgeDifferenceContractedSearchSpace(IDynamicGraphRouterDataSource<CHEdgeData> data, INodeWitnessCalculator witness_calculator) { _data = data; _witness_calculator = witness_calculator; _contraction_count = new Dictionary<uint, short>(); _depth = new Dictionary<long, long>(); }
/// <summary> /// Creates a new processor target. /// </summary> /// <param name="dynamicGraph">The graph that will be filled.</param> /// <param name="interpreter">The interpreter to generate the edge data.</param> /// <param name="edgeComparer"></param> /// <param name="tagsIndex"></param> /// <param name="idTransformations"></param> /// <param name="box"></param> protected DynamicGraphOsmStreamWriter( IDynamicGraphRouterDataSource <TEdgeData> dynamicGraph, IOsmRoutingInterpreter interpreter, IDynamicGraphEdgeComparer <TEdgeData> edgeComparer, ITagsCollectionIndex tagsIndex, IDictionary <long, uint> idTransformations, GeoCoordinateBox box) { _dynamicGraph = dynamicGraph; _interpreter = interpreter; _edgeComparer = edgeComparer; _box = box; _tagsIndex = tagsIndex; _idTransformations = idTransformations; _preIndexMode = true; _preIndex = new OsmSharp.Collections.HugeHashSet <long>(); _usedTwiceOrMore = new OsmSharp.Collections.HugeHashSet <long>(); _dataCache = new OsmDataCacheMemory(); }
/// <summary> /// Creates a new pre-processor. /// </summary> /// <param name="target"></param> /// <param name="calculator"></param> /// <param name="witnessCalculator"></param> /// <param name="keepDirectNeighbours"></param> public CHPreProcessor(IDynamicGraphRouterDataSource <CHEdgeData> target, INodeWeightCalculator calculator, INodeWitnessCalculator witnessCalculator, bool keepDirectNeighbours, double preProcessingPercentage) { _comparer = new CHEdgeDataComparer(); _keepDirectNeighbours = keepDirectNeighbours; _target = target; _calculator = calculator; _witnessCalculator = witnessCalculator; _preProcessingPercentage = preProcessingPercentage; _queue = new CHPriorityQueue(); _contracted = new bool[1000]; }
/// <summary> /// Creates a new processor target. /// </summary> /// <param name="dynamicGraph">The graph that will be filled.</param> /// <param name="interpreter">The interpreter to generate the edge data.</param> /// <param name="tagsIndex"></param> /// <param name="idTransformations"></param> /// <param name="collectIntermediates"></param> /// <param name="coordinates"></param> protected DynamicGraphOsmStreamWriter( IDynamicGraphRouterDataSource <TEdgeData> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, HugeDictionary <long, uint> idTransformations, bool collectIntermediates, ICoordinateIndex coordinates) { _dynamicGraph = dynamicGraph; _interpreter = interpreter; _tagsIndex = tagsIndex; _idTransformations = idTransformations; _preIndexMode = true; _preIndex = new OsmSharp.Collections.LongIndex.LongIndex.LongIndex(); _relevantNodes = new OsmSharp.Collections.LongIndex.LongIndex.LongIndex(); _restricedWays = new HashSet <long>(); _collapsedNodes = new Dictionary <long, KeyValuePair <KeyValuePair <long, uint>, KeyValuePair <long, uint> > >(); _collectIntermediates = collectIntermediates; _dataCache = new OsmDataCacheMemory(); _coordinates = coordinates; }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter"></param> /// <param name="tagsIndex"></param> /// <param name="idTransformations"></param> public LiveGraphOsmStreamTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsIndex tagsIndex, IDictionary <long, uint> idTransformations, IEnumerable <Vehicle> vehicles) : this(dynamicGraph, interpreter, tagsIndex, idTransformations, null, vehicles) { }
/// <summary> /// Creates a new pre-processor. /// </summary> /// <param name="target"></param> /// <param name="calculator"></param> /// <param name="witnessCalculator"></param> public CHPreProcessor(IDynamicGraphRouterDataSource<CHEdgeData> target, INodeWeightCalculator calculator, INodeWitnessCalculator witnessCalculator) { _comparer = null; _target = target; _calculator = calculator; _witnessCalculator = witnessCalculator; _queue = new BinairyHeap<uint>(target.VertexCount + (uint)System.Math.Max(target.VertexCount * 0.1, 5)); _lowestPriorities = new float[target.VertexCount + (uint)System.Math.Max(target.VertexCount * 0.1, 5)]; for(int idx = 0; idx < _lowestPriorities.Length; idx++) { // uncontracted = priority != float.MinValue. _lowestPriorities[idx] = float.MaxValue; } }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter"></param> /// <param name="tagsIndex"></param> /// <param name="box"></param> public LiveGraphOsmStreamTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsIndex tagsIndex, GeoCoordinateBox box) : this(dynamicGraph, interpreter, tagsIndex, new Dictionary <long, uint>(), box, null) { }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter"></param> /// <param name="tagsIndex"></param> /// <param name="vehicles">The vehicle profiles to build routing information for.</param> /// <param name="collectIntermediates"></param> public LiveGraphOsmStreamTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, IEnumerable <Vehicle> vehicles, bool collectIntermediates) : this(dynamicGraph, interpreter, tagsIndex, vehicles, collectIntermediates, new CoordinateIndex()) { }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="vehicles"></param> /// <param name="interpreter">Inteprets the OSM-data.</param> /// <param name="tagsIndex">Holds all the tags.</param> public LiveGraphOsmStreamTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, IEnumerable <Vehicle> vehicles) : this(dynamicGraph, interpreter, tagsIndex, new Dictionary <long, uint>(), vehicles) { }
/// <summary> /// Creates a new pre-processor. /// </summary> /// <param name="target"></param> /// <param name="calculator"></param> /// <param name="witnessCalculator"></param> /// <param name="keepDirectNeighbours"></param> public CHPreProcessor(IDynamicGraphRouterDataSource<CHEdgeData> target, INodeWeightCalculator calculator, INodeWitnessCalculator witnessCalculator, bool keepDirectNeighbours, double preProcessingPercentage) { _comparer = new CHEdgeDataComparer(); _keepDirectNeighbours = keepDirectNeighbours; _target = target; _calculator = calculator; _witnessCalculator = witnessCalculator; _preProcessingPercentage = preProcessingPercentage; _queue = new CHPriorityQueue(); _contracted = new bool[1000]; }
/// <summary> /// Creates a new pre-processor. /// </summary> /// <param name="target"></param> /// <param name="calculator"></param> /// <param name="witnessCalculator"></param> public CHPreProcessor(IDynamicGraphRouterDataSource<CHEdgeData> target, INodeWeightCalculator calculator, INodeWitnessCalculator witnessCalculator) : this(target, calculator, witnessCalculator, true) { }
/// <summary> /// Creates a new pre-processor. /// </summary> /// <param name="target"></param> /// <param name="calculator"></param> /// <param name="witnessCalculator"></param> public CHPreProcessor(IDynamicGraphRouterDataSource <CHEdgeData> target, INodeWeightCalculator calculator, INodeWitnessCalculator witnessCalculator) : this(target, calculator, witnessCalculator, true) { }
/// <summary> /// Creates a new processor target. /// </summary> /// <param name="dynamicGraph">The graph that will be filled.</param> /// <param name="interpreter">The interpreter to generate the edge data.</param> /// <param name="edgeComparer"></param> /// <param name="tagsIndex"></param> protected DynamicGraphOsmStreamWriter(IDynamicGraphRouterDataSource <TEdgeData> dynamicGraph, IOsmRoutingInterpreter interpreter, IDynamicGraphEdgeComparer <TEdgeData> edgeComparer, ITagsCollectionIndex tagsIndex) : this(dynamicGraph, interpreter, edgeComparer, tagsIndex, new Dictionary <long, uint>()) { }
/// <summary> /// Creates a new processor target. /// </summary> /// <param name="dynamicGraph">The graph that will be filled.</param> /// <param name="interpreter">The interpreter to generate the edge data.</param> /// <param name="tagsIndex"></param> protected DynamicGraphOsmStreamWriter(IDynamicGraphRouterDataSource <TEdgeData> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex) : this(dynamicGraph, interpreter, tagsIndex, new HugeDictionary <long, uint>(), true, new CoordinateIndex()) { }
/// <summary> /// Creates a reference stream target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter"></param> /// <param name="tagsIndex"></param> /// <param name="vehicles"></param> public ReferenceGraphTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, IEnumerable <Vehicle> vehicles) : base(dynamicGraph, interpreter, tagsIndex, vehicles, false) { }
/// <summary> /// Creates a new edge difference calculator. /// </summary> /// <param name="data"></param> /// <param name="witness_calculator"></param> public EdgeDifference(IDynamicGraphRouterDataSource<CHEdgeData> data, INodeWitnessCalculator witness_calculator) { _data = data; _witness_calculator = witness_calculator; }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter">Inteprets the OSM-data.</param> /// <param name="tagsIndex">Holds all the tags.</param> public LiveGraphOsmStreamWriter(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IRoutingInterpreter interpreter, ITagsIndex tagsIndex) : this(dynamicGraph, interpreter, tagsIndex, new Dictionary <long, uint>()) { }
/// <summary> /// Creates a new processor target. /// </summary> /// <param name="dynamicGraph">The graph that will be filled.</param> /// <param name="interpreter">The interpreter to generate the edge data.</param> /// <param name="edgeComparer"></param> /// <param name="tagsIndex"></param> /// <param name="idTransformations"></param> protected DynamicGraphOsmStreamWriter(IDynamicGraphRouterDataSource <TEdgeData> dynamicGraph, IOsmRoutingInterpreter interpreter, IDynamicGraphEdgeComparer <TEdgeData> edgeComparer, ITagsIndex tagsIndex, IDictionary <long, uint> idTransformations) : this(dynamicGraph, interpreter, edgeComparer, tagsIndex, idTransformations, null) { }
/// <summary> /// Creates a new edge difference calculator. /// </summary> /// <param name="data"></param> /// <param name="witnessCalculator"></param> public EdgeDifference(IDynamicGraphRouterDataSource <CHEdgeData> data, INodeWitnessCalculator witnessCalculator) { _data = data; _witnessCalculator = witnessCalculator; }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter">Inteprets the OSM-data.</param> /// <param name="tagsIndex">Holds all the tags.</param> public LiveGraphOsmStreamTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex) : this(dynamicGraph, interpreter, tagsIndex, new HugeDictionary <long, uint>()) { }
/// <summary> /// Creates a new pre-processor. /// </summary> /// <param name="target"></param> /// <param name="calculator"></param> /// <param name="witnessCalculator"></param> /// <param name="keepReverseEdges"></param> public CHPreProcessor(IDynamicGraphRouterDataSource<CHEdgeData> target, INodeWeightCalculator calculator, INodeWitnessCalculator witnessCalculator, bool keepReverseEdges) { _comparer = new CHEdgeDataComparer(); _target = target; _calculator = calculator; _witnessCalculator = witnessCalculator; _queue = new CHPriorityQueue(); _contracted = new bool[1000]; }
/// <summary> /// Creates a reference stream target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter"></param> /// <param name="tagsIndex"></param> /// <param name="vehicles"></param> public ReferenceGraphTarget(IDynamicGraphRouterDataSource<LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, IEnumerable<Vehicle> vehicles) : base(dynamicGraph, interpreter, tagsIndex, vehicles, false) { }
/// <summary> /// Creates a new pre-processor. /// </summary> /// <param name="target"></param> /// <param name="calculator"></param> /// <param name="witnessCalculator"></param> /// <param name="keepDirectNeighbours"></param> public CHPreProcessor(IDynamicGraphRouterDataSource<CHEdgeData> target, INodeWeightCalculator calculator, INodeWitnessCalculator witnessCalculator, bool keepDirectNeighbours) : this(target, calculator, witnessCalculator, true, 1) { }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter"></param> /// <param name="tagsIndex"></param> /// <param name="idTransformations"></param> public LiveGraphOsmStreamTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, IDictionary <long, uint> idTransformations) : this(dynamicGraph, interpreter, tagsIndex, idTransformations, null, null) { }
/// <summary> /// Creates a CH data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter"></param> /// <param name="tagsIndex"></param> /// <param name="vehicle"></param> public CHEdgeGraphOsmStreamTarget(IDynamicGraphRouterDataSource <CHEdgeData> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, Vehicle vehicle) : base(dynamicGraph, interpreter, new CHEdgeDataComparer(), tagsIndex) { _vehicle = vehicle; }
/// <summary> /// Creates a new osm edge data processing target. /// </summary> /// <param name="dynamicGraph"></param> /// <param name="interpreter">Inteprets the OSM-data.</param> /// <param name="tagsIndex">Holds all the tags.</param> /// <param name="coordinates"></param> public LiveGraphOsmStreamTarget(IDynamicGraphRouterDataSource <LiveEdge> dynamicGraph, IOsmRoutingInterpreter interpreter, ITagsCollectionIndex tagsIndex, ICoordinateIndex coordinates) : this(dynamicGraph, interpreter, tagsIndex, null, true, coordinates) { }