Exemplo n.º 1
0
        public RoutingEdge GetEdge(uint edgeId)
        {
            GeometricEdge edge = this._graph.GetEdge(edgeId);

            OsmSharp.Routing.Data.EdgeData         edgeData = EdgeDataSerializer.Deserialize(edge.Data);
            OsmSharp.Routing.Network.Data.EdgeData data     = new OsmSharp.Routing.Network.Data.EdgeData()
            {
                MetaId   = this._edgeData[(long)edgeId],
                Distance = edgeData.Distance,
                Profile  = edgeData.Profile
            };
            return(new RoutingEdge(edge.Id, edge.From, edge.To, data, edge.DataInverted, edge.Shape));
        }
Exemplo n.º 2
0
        public uint AddEdge(uint vertex1, uint vertex2, OsmSharp.Routing.Network.Data.EdgeData data, ShapeBase shape)
        {
            if ((double)data.Distance > (double)this._maxEdgeDistance)
            {
                throw new ArgumentException("data.Distance too big for this network.");
            }
            uint edgeId = this._graph.AddEdge(vertex1, vertex2, EdgeDataSerializer.Serialize(data.Distance, data.Profile), shape);

            if ((long)edgeId >= this._edgeData.Length)
            {
                this.IncreaseSizeEdgeData(edgeId);
            }
            this._edgeData[(long)edgeId] = data.MetaId;
            return(edgeId);
        }