Exemple #1
0
        /// <summary>
        /// 绘制初始画板
        /// </summary>
        public void DrawSimuMap(List <NodeBean> lnb, List <LinkBean> lnr)
        {
            if (pl == null)
            {
                pl = (DrawConverter(lnb));
            }

            // 将pl转化为实际值
            List <PointDrawer> lpd = convertToTrueListPoints(pl);

            PointDrawer.Draw(PointType.NORMAL, lpd.ToArray(), this.graph);

            //
            List <TextDrawer> tl = new List <TextDrawer>();

            foreach (PointDrawer p in lpd)
            {
                tl.Add(new TextDrawer(p.name, (int)(p.Longtitude + 10), (int)(p.Latitude - 5)));
            }
            TextDrawer.Draw(TextType.NORMAL, tl.ToArray(), this.graph);

            // 将lrd转化为实际值
            if (lrd == null)
            {
                lrd = DrawConverter(lnr);
            }

            List <RouteDrawer> lld = convertToTrueListRoutes(lrd, lpd);

            RouteDrawer.Draw(RouteType.NORMAL, lld.ToArray(), this.graph);
        }
Exemple #2
0
        private List <RouteDrawer> convertToTrueListRoutes(List <RouteDrawer> lr_temp,
                                                           List <PointDrawer> lp_temp,
                                                           PointDrawer center)
        {
            List <RouteDrawer> lld = new List <RouteDrawer>();

            foreach (RouteDrawer ld in lr_temp)
            {
                PointDrawer sp = lp_temp.Find(delegate(PointDrawer pd)
                {
                    return(pd.id.Equals(ld.spoint.id));
                });
                PointDrawer ep = lp_temp.Find(delegate(PointDrawer pd)
                {
                    return(pd.id.Equals(ld.epoint.id));
                });
                if (sp != null && ep != null)
                {
                    RouteDrawer rd = new RouteDrawer(sp, ep, ld.id);
                    lld.Add(rd);
                }
                else if (sp == null || ep == null)
                {
                    RouteDrawer rd = (sp == null) ?
                                     new RouteDrawer(center, ep, ld.id) : new RouteDrawer(sp, center, ld.id);
                    lld.Add(rd);
                }
            }
            return(lld);
        }
Exemple #3
0
        /// <summary>
        /// 通用绘图方式
        /// </summary>
        /// <param name="item">绘制项目</param>
        /// <param name="name">绘图名称</param>
        /// <param name="type">绘制类型</param>
        private void Draw(DrawItem item, object type, object obj)
        {
            switch (item)
            {
            case DrawItem.POINT:
                PointDrawer.Draw(type, obj, graph);     // 空缺处可以是PointDrawer 也可以是PointDrawer[]
                break;

            case DrawItem.ROUTE:
                RouteDrawer.Draw(type, obj, graph);     // 空缺处可以是RouteDrawer 也可以是RouteDrawer[]
                break;

            case DrawItem.TEXT:
                break;
            }
        }
Exemple #4
0
 private static void DrawRoute(RouteType type, RouteDrawer r, Graphics g)
 {
     if (r != null)
     {
         Pen MyPen;
         switch (type)
         {
             case RouteType.EDAGE:
                 MyPen = new Pen(Color.Red, 2);
                 Paint(r, g, MyPen);
                 break;
             case RouteType.GROUP:
                 MyPen = new Pen(Color.LightBlue, 3);
                 Paint(r, g, MyPen);
                 break;
             case RouteType.NORMAL:
                 MyPen = new Pen(Color.White, 1);
                 Paint(r, g, MyPen);
                 break;
         }
     }
 }
Exemple #5
0
        private static void DrawRoute(RouteType type, RouteDrawer r, Graphics g)
        {
            if (r != null)
            {
                Pen MyPen;
                switch (type)
                {
                case RouteType.EDAGE:
                    MyPen = new Pen(Color.Red, 2);
                    Paint(r, g, MyPen);
                    break;

                case RouteType.GROUP:
                    MyPen = new Pen(Color.LightBlue, 3);
                    Paint(r, g, MyPen);
                    break;

                case RouteType.NORMAL:
                    MyPen = new Pen(Color.White, 1);
                    Paint(r, g, MyPen);
                    break;
                }
            }
        }
Exemple #6
0
 private static void Paint(RouteDrawer r, Graphics g, Pen MyPen)
 {
     g.DrawLine(MyPen,
                new Point((int)r.spoint.Longtitude, (int)r.spoint.Latitude),
                new Point((int)r.epoint.Longtitude, (int)r.epoint.Latitude));
 }
Exemple #7
0
        public long id; // 所属道路Id

        public RouteDrawer(RouteDrawer r)
        {
            this.spoint = new PointDrawer(r.spoint);
            this.epoint = new PointDrawer(r.epoint);
            this.id     = r.id;
        }
Exemple #8
0
 private List<RouteDrawer> convertToTrueListRoutes(List<RouteDrawer> lr_temp,
                                                   List<PointDrawer> lp_temp, 
                                                   PointDrawer center)
 {
     List<RouteDrawer> lld = new List<RouteDrawer>();
     foreach (RouteDrawer ld in lr_temp)
     {
         PointDrawer sp = lp_temp.Find(delegate(PointDrawer pd)
         {
             return pd.id.Equals(ld.spoint.id);
         });
         PointDrawer ep = lp_temp.Find(delegate(PointDrawer pd)
         {
             return pd.id.Equals(ld.epoint.id);
         });
         if (sp != null && ep != null)
         {
             RouteDrawer rd = new RouteDrawer(sp, ep, ld.id);
             lld.Add(rd);
         }
         else if(sp == null || ep == null)
         {
             RouteDrawer rd = (sp == null) ?
                 new RouteDrawer(center, ep, ld.id) : new RouteDrawer(sp ,center, ld.id);
             lld.Add(rd);
         }
     }
     return lld;
 }
Exemple #9
0
 private static void DrawRoutes(RouteType type, RouteDrawer[] r, Graphics g)
 {
     for (int i = 0; i < r.GetLength(0); i++)
     {
         DrawRoute(type, r[i], g);
     }
 }
Exemple #10
0
 public RouteDrawer(RouteDrawer r)
 {
     this.spoint = new PointDrawer(r.spoint);
     this.epoint = new PointDrawer(r.epoint);
     this.id = r.id;
 }
Exemple #11
0
 private static void Paint(RouteDrawer r, Graphics g, Pen MyPen)
 {
     g.DrawLine(MyPen,
                new Point((int)r.spoint.Longtitude, (int)r.spoint.Latitude),
                new Point((int)r.epoint.Longtitude, (int)r.epoint.Latitude));
 }