/// <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 }
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>()); }
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); }