Пример #1
0
        public static void SetSideStreets(this RouteSegment segment, RouterDb routerDb, uint vertex, uint previousEdge, uint nextVertex)
        {
            List <RouteSegmentBranch> routeSegmentBranchList = new List <RouteSegmentBranch>();

            RoutingNetwork.EdgeEnumerator edgeEnumerator = routerDb.Network.GetEdgeEnumerator(vertex);
            while (edgeEnumerator.MoveNext())
            {
                if ((int)edgeEnumerator.Id != (int)previousEdge && (int)edgeEnumerator.To != (int)nextVertex)
                {
                    RoutingEdge current = edgeEnumerator.Current;
                    RouterDb    db      = routerDb;
                    EdgeData    data    = current.Data;
                    int         profile = (int)data.Profile;
                    data = current.Data;
                    int metaId = (int)data.MetaId;
                    TagsCollectionBase profileAndMeta = db.GetProfileAndMeta((uint)profile, (uint)metaId);
                    ICoordinate        firstPoint     = routerDb.Network.GetFirstPoint(current, edgeEnumerator.From);
                    routeSegmentBranchList.Add(new RouteSegmentBranch()
                    {
                        Latitude  = firstPoint.Latitude,
                        Longitude = firstPoint.Longitude,
                        Tags      = profileAndMeta.ConvertFrom()
                    });
                }
            }
            if (routeSegmentBranchList.Count <= 0)
            {
                return;
            }
            segment.SideStreets = routeSegmentBranchList.ToArray();
        }
Пример #2
0
 public static void SetStop(this RouteSegment segment, ICoordinate coordinate, TagsCollectionBase tags)
 {
     segment.Points = new RouteStop[1]
     {
         new RouteStop()
         {
             Latitude  = coordinate.Latitude,
             Longitude = coordinate.Longitude,
             Metrics   = (RouteMetric[])null,
             Tags      = tags.ConvertFrom()
         }
     };
 }
Пример #3
0
 public static void Set(this RouteSegment segment, RouteSegment previous, Profile profile, TagsCollectionBase tags, Speed speed)
 {
     segment.SetDistanceAndTime(previous, speed);
     segment.Tags    = tags.ConvertFrom();
     segment.Profile = profile.Name;
 }