/// <summary>计算河流的重要性</summary> /// <param name="CAllRiverLt">河流数据</param> private void CalWeightiness(List <CRiverNet> CRiverNetLt, CParameterInitialize pParameterInitialize) { //先找到最大层次 double dblMaxLevel = 0; for (int i = 0; i < CRiverNetLt.Count; i++) { for (int j = 0; j < CRiverNetLt[i].CRiverLt.Count; j++) { if (CRiverNetLt[i].CRiverLt[j].dblLevel > dblMaxLevel) { dblMaxLevel = CRiverNetLt[i].CRiverLt[j].dblLevel; } } } //根据公式计算河流重要性 for (int i = 0; i < CRiverNetLt.Count; i++) { for (int j = 0; j < CRiverNetLt[i].CRiverLt.Count; j++) { double dblOrderWeightiness = Math.Pow(CRiverNetLt[i].CRiverLt[j].dblOrder, pParameterInitialize.dblOrderExponent); double dblLevelWeightiness = Math.Pow((dblMaxLevel - CRiverNetLt[i].CRiverLt[j].dblLevel + 1), pParameterInitialize.dblOrderExponent); CRiverNetLt[i].CRiverLt[j].dblWeightiness = CRiverNetLt[i].CRiverLt[j].pPolyline.Length * dblOrderWeightiness * dblLevelWeightiness; } } }
public override void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.pWorkspace = CHelpFunc.OpenWorkspace(ParameterInitialize.strSavePath); //读取数据 try { _pBSBLGOptCorMMSimplified = new CBSBLGOptCorMMSimplified(ParameterInitialize); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } _pBSBLGOptCorMMSimplified.BSBLGOptCorMMSimplifiedMorphing(); _DataRecords.ParameterResult = _pBSBLGOptCorMMSimplified.ParameterResult; }
private void btnRunAll_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; int intQuitCount = Convert.ToInt32(txtNodes.Text); int intTwiceCount = intQuitCount * 2; //int intUnlimited = 2000000000; //0: NonShape //1: MinIntBound //2: MaxMinC_EdgeNo //3: MaxMinC_Comb //4: MaxAvgC_EdgeNo //5: MaxAvgC_Comb //true: involving smallest //false: not necessarily involving smallest RunAStar(ParameterInitialize, intQuitCount, 4, true); RunAStar(ParameterInitialize, intTwiceCount, 4, true); RunAStar(ParameterInitialize, intQuitCount, 1, true); //we should run AStar before running greedy //because we want to compare the results between Greedy and AStar RunGreedy(ParameterInitialize, 4, true); RunGreedy(ParameterInitialize, 1, true); RunILP(ParameterInitialize, 100, true); RunILP(ParameterInitialize, 200, true); MessageBox.Show("Done!"); }
private void btnRunAll_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; int intQuitCount = Convert.ToInt32(txtNodes.Text); int intTwiceCount = intQuitCount * 2; //int intUnlimited = 2000000000; //0: NonShape //1: MinimizeInteriorBoundaries //2: MaximizeMinComp //3: MaximizeMinComp_Combine //4: MaximizeAvgComp_EdgeNumber //5: MaximizeAvgComp_Combine //true: involving smallest //false: not necessarily involving smallest //RunGreedy(ParameterInitialize, 4, true); //RunGreedy(ParameterInitialize, 1, true); RunAStar(ParameterInitialize, intQuitCount, 4, true); RunAStar(ParameterInitialize, intTwiceCount, 4, true); RunAStar(ParameterInitialize, intQuitCount, 1, true); //RunILP(ParameterInitialize, 112, true); //RunILP(ParameterInitialize, 300, true); MessageBox.Show("Done!"); }
public static void SaveToIpe(List <IFeatureLayer> pFLayerLt, IEnvelope pFLayerEnv, CEnvelope pIpeEnv, bool blnGroup, string strBoundWidth, CParameterInitialize ParameterInitialize, bool blnLayerToLeft = true) { var strContent = GetScaleLegend(pFLayerEnv, pIpeEnv, CHelpFunc.GetUnits(ParameterInitialize.m_mapControl.MapUnits)); for (int i = 0; i < pFLayerLt.Count; i++) { var pFLayer = pFLayerLt[i] as IFeatureLayer; var strDataOfFLayer = CToIpe.GetDataOfFeatureLayer(pFLayer, pFLayerEnv, pIpeEnv, strBoundWidth, true); if (blnGroup == true) { strDataOfFLayer = "<group>\n" + strDataOfFLayer + "</group>\n"; } strContent += strDataOfFLayer; if (blnLayerToLeft == true) { pIpeEnv.XMin -= pIpeEnv.Width; pIpeEnv.XMax -= pIpeEnv.Width; } } string strFullName = ParameterInitialize.strSavePath + "\\" + CHelpFunc.GetTimeStamp() + ".ipe"; using (var writer = new System.IO.StreamWriter(strFullName, true)) { writer.Write(CIpeDraw.GenerateIpeXMLWithContent(strContent)); } System.Diagnostics.Process.Start(@strFullName); }
public override void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.pWorkspace = CHelpFunc.OpenWorkspace(ParameterInitialize.strSavePath); _pAL = new CAL(_DataRecords); //_pAL.intIterationNum = Convert.ToInt32(this.txtIterationNum.Text); //the maximum itrative times //List<CCorrCpts> pCorrCptsLt = _DataRecords.ParameterResult.CCorrCptsLt; //List <CPoint > cptlt=new List<CPoint> (); //for (int i = 0; i < pCorrCptsLt.Count ; i++) //{ // cptlt.Add(pCorrCptsLt[i].FrCpt); //} //_RelativeInterpolationCpl = new CPolyline(0, cptlt); _RelativeInterpolationCpl = _DataRecords.ParameterResult.FromCpl; _DataRecords.ParameterResult.CResultPlLt = new List <CPolyline>(); }
private void btnDivideByDP_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; _pDPSimplify = new CDPSimplify(ParameterInitialize); isDivideByDP = true; }
private void btnMultiResults_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.pWorkspace = CHelpFunc.OpenWorkspace(ParameterInitialize.strSavePath); //Read Datasets try { _pOptCorBezier = new COptCorBezier(ParameterInitialize); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } _pOptCorBezier.OptCorBezierMultiResultsMorphing(); _DataRecords.ParameterResult = _pOptCorBezier.ParameterResult; }
private void btnDPMorph_Click(object sender, EventArgs e) { if (isDivideByDP == false) { MessageBox.Show("please press DivideByDP first!"); return; } CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; double dblProp = Convert.ToDouble(txtProportion.Text); double dblParameter = Convert.ToDouble(txtParameter.Text); if (rdoDistance.Checked == true) { _pDPSimplify.DPMorph(dblParameter, -1, -1, dblProp); } else if (rdoRemainRatio.Checked == true) { _pDPSimplify.DPMorph(-1, dblParameter, -1, dblProp); } else if (rdoRemainNum.Checked == true) { _pDPSimplify.DPMorph(-1, -1, dblParameter, dblProp); } //_pDPSimplify.DPSimplify(-1, 0.8, -1); CHelpFunc.SaveCPlLt(_pDPSimplify.ParameterResult.CResultPlLt, "DPMorph" + "_" + dblParameter.ToString() + "_" + dblProp.ToString(), ParameterInitialize.pWorkspace, ParameterInitialize.m_mapControl); _DataRecords.ParameterResult = _pDPSimplify.ParameterResult; }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; ParameterInitialize.dblLargerScale = Convert.ToDouble(this.txtLargerScale.Text); ParameterInitialize.dblSmallerScale = Convert.ToDouble(this.txtSmallerScale.Text); SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.strSaveFolderName = System.IO.Path.GetFileNameWithoutExtension(SFD.FileName); ParameterInitialize.pWorkspace = CHelpFunc.OpenWorkspace(ParameterInitialize.strSavePath); //读取数据 _pAtBdMorphing = new CAtBdMorphing(ParameterInitialize); _pAtBdMorphing.AtBdMorphing(); _DataRecords.ParameterResult = _pAtBdMorphing.ParameterResult; //CHelpFuncExcel.KillExcel(); MessageBox.Show("Done!"); }
public void FrmOptCor_Load(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; ParameterInitialize.cboLayerLt = new List <ComboBox>(2); ParameterInitialize.cboLayerLt.Add(this.cboLargerScaleLayer); ParameterInitialize.cboLayerLt.Add(this.cboSmallerScaleLayer); ParameterInitialize.txtMaxBackK = this.txtMaxBackK; ParameterInitialize.txtMulti = this.txtMulti; ParameterInitialize.txtIncrease = this.txtIncrease; ParameterInitialize.txtEvaluation = this.txtEvaluation; ParameterInitialize.cboMorphingMethod = this.cboMorphingMethod; ParameterInitialize.chkCoincidentPoints = this.chkCoincidentPoints; ParameterInitialize.cboStandardVector = this.cboStandardVector; ParameterInitialize.cboEvaluationMethod = this.cboEvaluationMethod; ParameterInitialize.cboIntMaxBackKforJ = this.cboIntMaxBackKforJ; ParameterInitialize.txtAttributeOfKnown = this.txtAttributeOfKnown; this.cboMorphingMethod.SelectedIndex = 1; this.cboStandardVector.SelectedIndex = 0; this.cboEvaluationMethod.SelectedIndex = 0; this.cboIntMaxBackKforJ.SelectedIndex = 3; //txtEvaluation //Read all the layers CHelpFunc.FrmOperation(ref ParameterInitialize); }
private void btnSaveTrajectory_Click(object sender, EventArgs e) { try { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; List <CPolyline> cpllt = _DataRecords.ParameterResult.CResultPlLt; List <CPolyline> ctjpllt = new List <CPolyline>(); for (int j = 0; j < cpllt[0].CptLt.Count; j++) { List <CPoint> ctjptlt = new List <CPoint>(); for (int i = 0; i < cpllt.Count; i++) { ctjptlt.Add(cpllt[i].CptLt[j]); } CPolyline ctjpl = new CPolyline(j, ctjptlt); ctjpllt.Add(ctjpl); } _DataRecords.ParameterResult.CTrajectoryPlLt = ctjpllt; CHelpFunc.SaveCPlLt(ctjpllt, "Trajectories", ParameterInitialize.pWorkspace, ParameterInitialize.m_mapControl); } catch { MessageBox.Show("No data or other errors! (Have you already implemented timerAdd_Tick?)"); } }
public void btnRun_Click(object sender, EventArgs e) { //get parameters CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; IEnvelope pFLayerEnv = ParameterInitialize.m_mapFeature .get_Layer(ParameterInitialize.cboLayerLt[0].SelectedIndex).AreaOfInterest; CEnvelope pIpeEnv = new CEnvelope( Convert.ToDouble(this.txtIpeMinX.Text), Convert.ToDouble(this.txtIpeMinY.Text), Convert.ToDouble(this.txtIpeMaxX.Text), Convert.ToDouble(this.txtIpeMaxY.Text)); string strBoundWidth = this.cboSize.SelectedItem.ToString(); if (chkOverrideWidth.Checked == false) { strBoundWidth = ""; } //save path CHelpFunc.SetSavePath(ParameterInitialize); var pFLayerLt = CHelpFunc.GetVisibleLayers(ParameterInitialize); CToIpe.SaveToIpe(pFLayerLt, pFLayerEnv, pIpeEnv, this.chkGroup.Checked, strBoundWidth, ParameterInitialize); }
private void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.pWorkspace = CHelperFunction.OpenWorkspace(ParameterInitialize.strSavePath); //读取数据 try { _pOptCorMM = new COptCorMM(ParameterInitialize); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } _pOptCorMM.OptCorMMMorphing(); _DataRecords.ParameterResult = _pOptCorMM.ParameterResult; }
public void DisplayAtBd(double dblProp) { CParameterInitialize pParameterInitialize = _ParameterInitialize; CParameterResult pParameterResult = _ParameterResult; if (dblProp < 0 || dblProp > 1) { MessageBox.Show("请输入正确参数!"); return; } //double dblLargerScale = pParameterInitialize.dblLargerScale; //double dblSmallerScale = pParameterInitialize.dblSmallerScale; //double dblTargetScale = Math.Pow(dblLargerScale, 1 - dblProp) * Math.Pow(dblSmallerScale, dblProp); //double dblIgnorableDis = 0.0001 * dblTargetScale / 111319.490793; //double dblIgnorableDis = 0.0001 * dblTargetScale / 100000000000; // var pStopwatch = Stopwatch.StartNew(); var normaldisplayCplLt = GenerateInterpolatedCplLt(dblProp); var fadeddisplayCplLt = GenerateInterpolatedCplLt(dblProp, _SgCorrCptsLtLt); pStopwatch.Stop(); var pStopwatchSave = Stopwatch.StartNew(); CSaveFeature.SaveCplEb(fadeddisplayCplLt, dblProp.ToString() + "_Lower"); CSaveFeature.SaveCplEb(normaldisplayCplLt, dblProp.ToString() + "_Higher"); pStopwatchSave.Stop(); CHelpFunc.DisplayRunTime(pStopwatch.ElapsedMilliseconds, "Generate", pStopwatchSave.ElapsedMilliseconds, "ToShape"); }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; //SaveFileDialog SFD = new SaveFileDialog(); //SFD.ShowDialog(); //ParameterInitialize.strSavePath = SFD.FileName; //ParameterInitialize.pWorkspace = CHelpFunc.OpenWorkspace(ParameterInitialize.strSavePath); //获取当前选择的点要素图层 //大比例尺要素图层 IFeatureLayer pBSFLayer = (IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(ParameterInitialize.cboLargerScaleLayer.SelectedIndex); //小比例尺要素图层 IFeatureLayer pSSFLayer = (IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(ParameterInitialize.cboSmallerScaleLayer.SelectedIndex); ParameterInitialize.pBSFLayer = pBSFLayer; ParameterInitialize.pSSFLayer = pSSFLayer; //获取线数组 List <CPolyline> _LSCPlLt = CHelpFunc.GetCPlLtByFeatureLayer(pBSFLayer); List <CPolyline> _SSCPlLt = CHelpFunc.GetCPlLtByFeatureLayer(pSSFLayer); CPolyline frcpl = _LSCPlLt[0]; CPolyline tocpl = _SSCPlLt[0]; List <CCorrCpts> pCorrCptsLt = BuildCorrespondences(frcpl, tocpl); double dblSimilarity = CalSimilarity(pCorrCptsLt, frcpl, tocpl); MessageBox.Show(dblSimilarity.ToString()); }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); if (SFD.FileName == null || SFD.FileName == "") { return; } ParameterInitialize.strSavePath = SFD.FileName; ParameterInitialize.pWorkspace = CHelpFunc.OpenWorkspace(ParameterInitialize.strSavePath); //Read Datasets try { _pMPBBSL = new CMPBBSL(ParameterInitialize); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } _pMPBBSL.MPBBSLMorphing(); _DataRecords.ParameterResult = _pMPBBSL.ParameterResult; }
public void btnRun_Click(object sender, EventArgs e) { string strLargerLayer = this.cboLargerScaleLayer.Text; string strSmallerLayer = this.cboSmallerScaleLayer.Text; IFeatureLayer pLargerFLayer = null; IFeatureLayer pSmallerFLayer = null; CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; try { for (int i = 0; i < ParameterInitialize.m_mapFeature.LayerCount; i++) { if (strLargerLayer == ParameterInitialize.m_mapFeature.get_Layer(i).Name) { pLargerFLayer = (IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(i); } else if (strSmallerLayer == ParameterInitialize.m_mapFeature.get_Layer(i).Name) { pSmallerFLayer = (IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(i); } } } catch (Exception) { MessageBox.Show("Please select a feature layer"); return; } double dblTargetScale = Convert.ToDouble(this.txtTargetScale.Text); double dblBuffer = 2 * dblTargetScale * 0.00001; //人眼分辨率(0.01mm)的两倍 //dblBuffer = 500; //基于人眼分辨率为0.01mm long lngStartTime = System.Environment.TickCount; //record the start time //获取线数组 List <CPolyline> LSCPlLt = CHelpFunc.GetCPlLtByFeatureLayer(pLargerFLayer); List <CPolyline> SSCPlLt = CHelpFunc.GetCPlLtByFeatureLayer(pSmallerFLayer); ITopologicalOperator pTopBS = LSCPlLt[0].pPolyline as ITopologicalOperator; ITopologicalOperator pTopSS = SSCPlLt[0].pPolyline as ITopologicalOperator; IGeometry pGeo1 = pTopBS.Buffer(dblBuffer); IGeometry pGeo2 = pTopSS.Buffer(dblBuffer); ITopologicalOperator pTop1 = pGeo1 as ITopologicalOperator; IGeometry pIntersectGeo = pTop1.Intersect(pGeo2, esriGeometryDimension.esriGeometry2Dimension); IArea pIntersectArea = pIntersectGeo as IArea; IArea pArea1 = pGeo1 as IArea; IArea pArea2 = pGeo2 as IArea; double dblOverlap = 2 * pIntersectArea.Area / (pArea1.Area + pArea2.Area); long lngEndTime = System.Environment.TickCount; //记录结束时间 _DataRecords.ParameterInitialize.tsslTime.Text = "Running Time: " + Convert.ToString(lngEndTime - lngStartTime) + "ms"; //显示运行时 MessageBox.Show(dblOverlap.ToString()); }
private void FrmStraightLine_Load(object sender, EventArgs e) { if (!DesignMode) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; CConstants.strMethod = "StraightLine"; } }
private void btnRunData_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; List <CCorrCpts> pCorrCptsLt = _DataRecords.ParameterResult.CCorrCptsLt; double dblSimilarity = CalSimilarity(pCorrCptsLt); MessageBox.Show(dblSimilarity.ToString()); }
public COptCorMM(CParameterInitialize ParameterInitialize) { Construct(ParameterInitialize); _intMaxBackK = Convert.ToInt32(ParameterInitialize.txtMaxBackK.Text); _intMulti = Convert.ToInt32(ParameterInitialize.txtMulti.Text); _intIncrease = Convert.ToInt32(ParameterInitialize.txtIncrease.Text); _BSCPlLt = _CPlLtLt[0]; _SSCPlLt = _CPlLtLt[1]; }
/// <summary> /// 用基于弯曲的Morphing方法进行处理 /// </summary> /// <param name="pParameterInitialize">参数</param> /// <param name="pParameterVariableFrom">有关大比例尺折线的参数变量,主要储存了大比例尺线要素、文件保存时的名字、大比例尺图层和极小值</param> /// <param name="pParameterVariableTo">有关小比例尺折线的参数变量,主要储存了:小比例尺线要素、文件保存时的名字、小比例尺图层和极小值</param> /// <param name="ParameterThreshold">阈值参数,主要储存了:大、小比例尺线要素长度,弯曲基线比阈值范围</param> /// <remarks>创建约束三角网时,已使用外包多边形作为约束边</remarks> public LinkedList <CCorrSegment> DWByMPBBSL(CParameterInitialize pParameterInitialize, CParameterVariable pParameterVariableFrom, CParameterVariable pParameterVariableTo, CParameterThreshold ParameterThreshold) { CPolyline frcpl = pParameterVariableFrom.CPolyline; frcpl.SetPolyline(); CPolyline tocpl = pParameterVariableTo.CPolyline; tocpl.SetPolyline(); List <CPoint> frchcptlt = _Triangulator.CreateConvexHullEdgeLt2(frcpl, pParameterVariableFrom.dblVerySmall); CPolyline frchcpl = new CPolyline(0, frchcptlt); //大比例尺折线外包多边形线段 frchcpl.SetPolyline(); List <CPoint> tochcptlt = _Triangulator.CreateConvexHullEdgeLt2(tocpl, pParameterVariableFrom.dblVerySmall); CPolyline tochcpl = new CPolyline(0, tochcptlt); //小比例尺折线外包多边形线段 tochcpl.SetPolyline(); //添加约束数据生成图层,以便于利用AE中的功能(ct:constraint) List <CPolyline> frctcpllt = new List <CPolyline>(); frctcpllt.Add(frcpl); frctcpllt.Add(frchcpl); List <CPolyline> toctcpllt = new List <CPolyline>(); toctcpllt.Add(tocpl); toctcpllt.Add(tochcpl); IFeatureLayer pBSFLayer = CHelpFunc.SaveCPlLt(frctcpllt, "frctcpllt", pParameterInitialize.pWorkspace, pParameterInitialize.m_mapControl); IFeatureLayer pSSFLayer = CHelpFunc.SaveCPlLt(toctcpllt, "toctcpllt", pParameterInitialize.pWorkspace, pParameterInitialize.m_mapControl); pParameterVariableFrom.pFeatureLayer = pBSFLayer; pParameterVariableTo.pFeatureLayer = pSSFLayer; //建立CDT并获取弯曲森林 CBendForest FromLeftBendForest = new CBendForest(); CBendForest FromRightBendForest = new CBendForest(); GetBendForest(pParameterVariableFrom, ref FromLeftBendForest, ref FromRightBendForest, pParameterInitialize); CBendForest ToLeftBendForest = new CBendForest(); CBendForest ToRightBendForest = new CBendForest(); GetBendForest(pParameterVariableTo, ref ToLeftBendForest, ref ToRightBendForest, pParameterInitialize); //弯曲树匹配,寻找对应独立弯曲 List <CCorrespondBend> IndependCorrespondBendLt = new List <CCorrespondBend>(); IndependCorrespondBendLt.AddRange(BendTreeMatch(FromLeftBendForest, ToLeftBendForest, ParameterThreshold)); IndependCorrespondBendLt.AddRange(BendTreeMatch(FromRightBendForest, ToRightBendForest, ParameterThreshold)); //弯曲匹配,寻找对应弯曲 List <CCorrespondBend> CorrespondBendLt = BendMatch(IndependCorrespondBendLt, ParameterThreshold); //提取对应线段 LinkedList <CCorrSegment> CorrespondSegmentLk = CHelpFunc.DetectCorrespondSegment(frcpl, tocpl, CorrespondBendLt); //CHelpFunc.PreviousWorkCSeLt(ref CorrespondSegmentLk); return(CorrespondSegmentLk); }
public COptCor(CParameterInitialize ParameterInitialize) { Construct <CPolyline>(ParameterInitialize, blnIGeoToCGeo: false); this.FrCptLtLt = CHelpFunc.GetCptEbEbByIColEb(this.ObjIGeoLtLt[0]).ToLtLt(); this.ToCptLtLt = CHelpFunc.GetCptEbEbByIColEb(this.ObjIGeoLtLt[1]).ToLtLt(); this.ObjIGeoLtLt = null; //to save memory }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; _pOptCor = new COptCor(ParameterInitialize); _DataRecords.ParameterResult = _pOptCor.OptCorMorphing(); MessageBox.Show("Done!"); }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; CTemporary pTemporary = new CTemporary(ParameterInitialize, Convert.ToInt16(this.txtLayerCount.Text)); pTemporary.Temporary(); MessageBox.Show("Done!"); }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; CUnifyDirectionsPolylines pUnifyDirectionsPolylines = new CUnifyDirectionsPolylines(ParameterInitialize); pUnifyDirectionsPolylines.UnifyDirectionsPolylines(); MessageBox.Show("Done!"); //CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; ////dialogue for saving //SaveFileDialog SFD = new SaveFileDialog(); //SFD.ShowDialog(); //string strPath = SFD.FileName; //ParameterInitialize.pWorkspace = CHelpFunc.OpenWorkspace(strPath); ////获取当前选择的点要素图层 ////大比例尺要素图层 //IFeatureLayer pBSFLayer = (IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(ParameterInitialize.cboLargerScaleLayer.SelectedIndex); ////小比例尺要素图层 //IFeatureLayer pSSFLayer =(IFeatureLayer)ParameterInitialize.m_mapFeature.get_Layer(ParameterInitialize.cboSmallerScaleLayer.SelectedIndex); //ParameterInitialize.pBSFLayer = pBSFLayer; //"Fixed layer" //ParameterInitialize.pSSFLayer = pSSFLayer; //"(layer) would be modified" ////获取线数组 //List<CPolyline> LSCPlLt = CHelpFunc.GetCPlLtByFeatureLayer(pBSFLayer); //List<CPolyline> SSCPlLt = CHelpFunc.GetCPlLtByFeatureLayer(pSSFLayer); //for (int i = 0; i < LSCPlLt.Count; i++) //{ // LSCPlLt[i].SetBaseLine(); // SSCPlLt[i].SetBaseLine(); // double dblFrDiffX = LSCPlLt[i].pBaseLine.ToCpt.X - LSCPlLt[i].pBaseLine.FrCpt.X; // double dblFrDiffY = LSCPlLt[i].pBaseLine.ToCpt.Y - LSCPlLt[i].pBaseLine.FrCpt.Y; // double dblToDiffX = SSCPlLt[i].pBaseLine.ToCpt.X - SSCPlLt[i].pBaseLine.FrCpt.X; // double dblToDiffY = SSCPlLt[i].pBaseLine.ToCpt.Y - SSCPlLt[i].pBaseLine.FrCpt.Y; // double dblAngleDiff = CGeoFunc.CalAngle_Counterclockwise(dblFrDiffX, dblFrDiffY, dblToDiffX, dblToDiffY); // if ((Math.Abs(dblAngleDiff) > (Math.PI / 2) && Math.Abs(dblAngleDiff) < (3 * Math.PI / 2))) // { // SSCPlLt[i].ReverseCpl(); // SSCPlLt[i].SetPolyline(); // } //} ////Save //CHelpFunc.SaveCPlLt(SSCPlLt, ParameterInitialize.pSSFLayer.Name + "UnifiedDirections", ParameterInitialize.pWorkspace, ParameterInitialize.m_mapControl); }
private void btnSaveInterpolation_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; List <CPolyline> cpllt = new List <CPolyline>(); cpllt.Add(_RelativeInterpolationCpl); string strFileName = _dblProp.ToString(); CHelpFunc.SaveCPlLt(cpllt, strFileName, ParameterInitialize.pWorkspace, ParameterInitialize.m_mapControl); }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; CMatchAndMergePolylines pMatchAndMergePolylines = new CMatchAndMergePolylines(ParameterInitialize); pMatchAndMergePolylines.MatchAndMergePolylines(); MessageBox.Show("Done!"); }
private void Choose_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; //建立文件夹,保存之后生成的要素图层 SaveFileDialog SFD = new SaveFileDialog(); SFD.ShowDialog(); txtPath.Text = SFD.FileName; }
public void btnRun_Click(object sender, EventArgs e) { CParameterInitialize ParameterInitialize = _DataRecords.ParameterInitialize; CUnifyIndicesPolylines pUnifyIndicesPolylines = new CUnifyIndicesPolylines(ParameterInitialize); pUnifyIndicesPolylines.UnifyIndicesPolylines(); MessageBox.Show("Done!"); }