Exemplo n.º 1
0
 public RouteDrawer(string id1, string name1, double sx, double sy, 
                    string id2, string name2, double ex, double ey, long id)
 {
     spoint = new PointDrawer(id1, name1, sx, sy);
     epoint = new PointDrawer(id2, name2, ex, ey);
     this.id = id;
 }
Exemplo n.º 2
0
 private static void DrawPoints(PointType type, PointDrawer[] points, Graphics g)
 {
     for (int i = 0; i < points.GetLength(0); i++)
     {
         DrawPoint(type, points[i], g);
     }
 }
Exemplo n.º 3
0
 public RouteDrawer(string id1, string name1, double sx, double sy,
                    string id2, string name2, double ex, double ey, long id)
 {
     spoint  = new PointDrawer(id1, name1, sx, sy);
     epoint  = new PointDrawer(id2, name2, ex, ey);
     this.id = id;
 }
Exemplo n.º 4
0
        private static void DrawPoint(PointType type, PointDrawer point, Graphics g)
        {
            Pen MyPen;

            switch (type)
            {
            case PointType.CENTER:
                MyPen = new Pen(Color.Purple, 4);
                g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 8, 8);
                break;

            case PointType.EDAGE:
                MyPen = new Pen(Color.Blue, 2);
                g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 4, 4);
                break;

            case PointType.NORMAL:
                MyPen = new Pen(Color.White, 2);
                g.DrawEllipse(MyPen, (float)(point.Longtitude), (float)point.Latitude, 3, 3);
                break;

            case PointType.GROUP:
                MyPen = new Pen(Color.Blue, 3);
                g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 5, 5);
                break;
            }
        }
Exemplo n.º 5
0
 public PointDrawer(PointDrawer p)
 {
     id = p.id;
     Longtitude = p.Longtitude;
     Latitude = p.Latitude;
     name = p.name;
 }
Exemplo n.º 6
0
 public PointDrawer(PointDrawer p)
 {
     id         = p.id;
     Longtitude = p.Longtitude;
     Latitude   = p.Latitude;
     name       = p.name;
 }
Exemplo n.º 7
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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 9
0
        public void DrawPointer(NodeBean nodebean)
        {
            List <PointDrawer> lpd_temp = new List <PointDrawer>();
            List <RouteDrawer> lrd_temp = new List <RouteDrawer>();

            foreach (RouteDrawer rd in lrd)
            {
                if (rd.spoint.id.Equals(nodebean.id))
                {
                    lpd_temp.Add(rd.epoint);
                    lrd_temp.Add(rd);
                }
                if (rd.epoint.id.Equals(nodebean.id))
                {
                    lpd_temp.Add(rd.spoint);
                    lrd_temp.Add(rd);
                }
            }

            PointDrawer p     = findPointerById(nodebean.id);
            PointDrawer p_new = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height);

            Draw(DrawItem.POINT, PointType.CENTER, p_new);

            List <PointDrawer> lpp = convertToTrueListPoints(lpd_temp);

            Draw(DrawItem.POINT, PointType.EDAGE, lpp.ToArray());

            List <RouteDrawer> ll = convertToTrueListRoutes(lrd_temp, lpp, p_new);

            Draw(DrawItem.ROUTE, RouteType.EDAGE, ll.ToArray());
            graph.Flush();
        }
Exemplo n.º 10
0
        private List <PointDrawer> convertToTrueListPoints(List <PointDrawer> lpl)
        {
            List <PointDrawer> lpd = new List <PointDrawer>();

            foreach (PointDrawer p in lpl)
            {
                PointDrawer pd = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height);
                lpd.Add(pd);
            }
            return(lpd);
        }
Exemplo n.º 11
0
        private List <PointDrawer> convertToTrueListPoints(List <NodeBean> lnb)
        {
            List <PointDrawer> lp_temp = new List <PointDrawer>();

            foreach (NodeBean node in lnb)
            {
                PointDrawer p = findPointerById(node.id);
                if (p != null)
                {
                    lp_temp.Add(new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height));
                }
            }
            return(lp_temp);
        }
Exemplo n.º 12
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;
            }
        }
Exemplo n.º 13
0
 private static void DrawPoint(PointType type, PointDrawer point, Graphics g)
 {
     Pen MyPen;
     switch (type)
     {
         case PointType.CENTER:
             MyPen = new Pen(Color.Purple, 4);
             g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 8, 8);
             break;
         case PointType.EDAGE:
             MyPen = new Pen(Color.Blue, 2);
             g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 4, 4);
             break;
         case PointType.NORMAL:
             MyPen = new Pen(Color.White, 2);
             g.DrawEllipse(MyPen, (float)(point.Longtitude), (float)point.Latitude, 3, 3);
             break;
         case PointType.GROUP:
             MyPen = new Pen(Color.Blue, 3);
             g.DrawEllipse(MyPen, (float)point.Longtitude, (float)point.Latitude, 5, 5);
             break;
     }
 }
Exemplo n.º 14
0
 private List<PointDrawer> convertToTrueListPoints(List<PointDrawer> lpl)
 {
     List<PointDrawer> lpd = new List<PointDrawer>();
     foreach (PointDrawer p in lpl)
     {
         PointDrawer pd = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height);
         lpd.Add(pd);
     }
     return lpd;
 }
Exemplo n.º 15
0
 public RouteDrawer(RouteDrawer r)
 {
     this.spoint = new PointDrawer(r.spoint);
     this.epoint = new PointDrawer(r.epoint);
     this.id = r.id;
 }
Exemplo n.º 16
0
 public RouteDrawer(PointDrawer s, PointDrawer e, long id)
 {
     spoint  = new PointDrawer(s);
     epoint  = new PointDrawer(e);
     this.id = id;
 }
Exemplo n.º 17
0
 public RouteDrawer(PointDrawer s, PointDrawer e)
 {
     spoint = new PointDrawer(s);
     epoint = new PointDrawer(e);
     this.id = 0;
 }
Exemplo n.º 18
0
 public RouteDrawer(PointDrawer s, PointDrawer e)
 {
     spoint  = new PointDrawer(s);
     epoint  = new PointDrawer(e);
     this.id = 0;
 }
Exemplo n.º 19
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;
        }
Exemplo n.º 20
0
        public void DrawPointer(NodeBean nodebean)
        {
            List<PointDrawer> lpd_temp = new List<PointDrawer>();
            List<RouteDrawer> lrd_temp = new List<RouteDrawer>();

            foreach(RouteDrawer rd in lrd)
            {
                if (rd.spoint.id.Equals(nodebean.id))
                {
                    lpd_temp.Add(rd.epoint);
                    lrd_temp.Add(rd);
                }
                if (rd.epoint.id.Equals(nodebean.id))
                {
                    lpd_temp.Add(rd.spoint);
                    lrd_temp.Add(rd);
                }
            }

            PointDrawer p = findPointerById(nodebean.id);
            PointDrawer p_new = new PointDrawer(p.id, p.name, p.Longtitude * width, p.Latitude * height);
            Draw(DrawItem.POINT, PointType.CENTER, p_new);

            List<PointDrawer> lpp = convertToTrueListPoints(lpd_temp);
            Draw(DrawItem.POINT, PointType.EDAGE, lpp.ToArray());

            List<RouteDrawer> ll = convertToTrueListRoutes(lrd_temp, lpp, p_new);
            Draw(DrawItem.ROUTE, RouteType.EDAGE, ll.ToArray());
            graph.Flush();
        }
Exemplo n.º 21
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;
 }
Exemplo n.º 22
0
 public RouteDrawer(PointDrawer s, PointDrawer e, long id)
 {
     spoint = new PointDrawer(s);
     epoint = new PointDrawer(e);
     this.id = id;
 }