Example #1
0
        /// <summary>
        /// 获得线道控制点数据,包括每条线道的井段Lst,线道的宽度等信息。
        /// </summary>
        /// <param name="lineRoadModelLst"></param>
        /// <returns></returns>
        public static List <LineRoadControlData> getLineRoadControlDataLst(List <LineRoadDesignClass> lineRoadModelLst)
        {
            double xLrPtStart = DrawCommonData.xStart;
            double yLrptStart = DrawCommonData.yStart;
            List <LineRoadControlData> lrRoadContorlDataLst = new List <LineRoadControlData>();

            for (int i = 0; i < lineRoadModelLst.Count; i++)
            {
                LJJSPoint           lPtStart         = new LJJSPoint(xLrPtStart, yLrptStart);
                LineRoadDesignClass tmpLrModel       = lineRoadModelLst[i];
                LineRoadControlData tmpLrControlData = new LineRoadControlData();
                tmpLrControlData.LineRoadId          = tmpLrModel.LineRoadId;
                tmpLrControlData.LineRoadWidth       = tmpLrModel.LineRoadWidth;
                tmpLrControlData.LineRoadJDStructLst = JDOper.GetLineRoadJDLst(lPtStart, tmpLrModel.LineRoadWidth);     //获得2560-2590,2660-2690
                lrRoadContorlDataLst.Add(tmpLrControlData);
                xLrPtStart = xLrPtStart + tmpLrModel.LineRoadWidth;
            }
            return(lrRoadContorlDataLst);   //only depth -> 2560-2590 2660-2690
        }
Example #2
0
        public override List <ulong> BuildLineRoadArea()
        {
            //1,从黑板取出线道的设计数据;
            List <LineRoadDesignClass> lineRoadModelLst    = LineRoadDesign.LineRoadDesginLst;
            List <LineRoadControlData> lineRoadControlData = FrameControlData.LineRoadControlLst; //2560-2590 2660-2690

            //2,绘制线道区
            if (lineRoadModelLst.Count() != lineRoadControlData.Count())
            {
                return(null);
            }
            for (int i = 0; i < lineRoadModelLst.Count(); i++)
            {
                LineRoadDesignClass   tmplineRoadModel       = lineRoadModelLst[i];
                LineRoadControlData   tmpLineRoadControlData = lineRoadControlData[i];                     //2560-2590 2660-2690
                LineRoadBuilder       lineRoadBuilder        = LineRoadFactory.CreateLineRoadInstance(tmplineRoadModel.LineRoadStyle, LineRoadOper.BuildLineRoadDrawingModel(tmplineRoadModel, tmpLineRoadControlData));
                LineRoadBuildDirector lineRoadDirector       = new LineRoadBuildDirector(lineRoadBuilder); //
                lineRoadDirector.BuildLineRoad();
            }
            return(new List <ulong>());
        }
Example #3
0
        public static LineRoadDrawingModel BuildLineRoadDrawingModel(LineRoadDesignClass lineRoadModel, LineRoadControlData lineRoadControlData)
        {
            LineRoadDrawingModel lineRoadDrawingModel = new LineRoadDrawingModel();

            lineRoadDrawingModel.LineRoadStruc = lineRoadModel;
            lineRoadDrawingModel.LineRoadJdLst = lineRoadControlData.LineRoadJDStructLst;
            if (lineRoadControlData.LineRoadJDStructLst.Count() > 0)
            {
                if (null != lineRoadControlData.LineRoadJDStructLst && lineRoadControlData.LineRoadJDStructLst.Count() > 0)
                {
                    lineRoadDrawingModel.PtStart = lineRoadControlData.LineRoadJDStructLst[0].JDPtStart;
                }
            }
            return(lineRoadDrawingModel);
        }