/// <summary> /// 得到所有权 如果是村代码 只得到集体 /// </summary> /// <param name="xzdm"></param> /// <returns></returns> public static IList <JTSYQ> GetSelectJTSYQ(XZDM xzdm) { string bm = xzdm.DJZQDM; string sql = ""; switch (bm.Length) { case 6: break; case 9: sql = " BM LIKE '*" + bm + "*' And BM LIKE '*998'"; break; case 12: sql = " BM LIKE '*" + bm + "*' And BM LIKE '*00'"; break; case 14: sql = " BM LIKE '*" + bm.Insert(12, "JA000") + "*' "; break; } IList <JTSYQ> jtsyqs = JTSYQCustom.GetMapJTSYQ(sql); IList <JTSYQ> jtsyqGroup = JTSYQCustom.GroupByZu(jtsyqs); if (Utils.CheckListExists(jtsyqGroup)) { foreach (JTSYQ jtsyq in jtsyqGroup) { jtsyq.XZDM = xzdm; } } return(jtsyqGroup); }
/// <summary> /// 表格单击 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void Table_SingleClick(object sender, MouseButtonEventArgs e) { GridControl gridControl = sender as GridControl; GridColumn column = gridControl.CurrentColumn as GridColumn; MapTabDictoryCustom row = gridControl.CurrentItem as MapTabDictoryCustom; if (column.VisibleIndex == objectIndex) { } //图形缩放 var obj = gridControl.CurrentItem; if (obj == null) { return; } int objectId = (int)row.Dic["OBJECTID"]; IFeature feature = featureDic[objectId]; if (pLayer.Name == JTSYQCustom.JTSYQLayerName) { MapForm.CurrentJTSYQ = JTSYQCustom.FeaturesToJTSYQ(feature); MapForm.CurrentJTSYQ.MapTabDictoryCustom = row; } ArcGisUtils.axMapControl.Map.ClearSelection(); ArcGisUtils.axMapControl.Map.SelectFeature(pLayer, feature); //第三个参数为是否只选中一个 ArcGisUtils.axMapControl.Refresh(esriViewDrawPhase.esriViewGeoSelection, null, null); //选中要素高亮显示 ArcGisUtils.axMapControl.ActiveView.Refresh(); }
public void ExportZu_ZhiJieRenShenFengZhengMing(JTSYQ jtsyq, string saveDir) { //得到四至涉及单位 /*string str = "510185047009JA00008".Replace("510185",""); * var v = str.Insert(3, "-"); * var v1 = v.Insert(7, "-"); * var v2 = v1.Insert(10, "-");*/ List <XZDM> xzdms = new List <XZDM>(); foreach (JTSYQ tem in jtsyq.GroupJTSYQ) { xzdms.AddRange(JTSYQCustom.GetSZInXZDM(tem)); } //得到行政代码表 foreach (XZDM xzdm in xzdms) { Dictionary <string, XMLObject> ClazzDic = XMLRead.XmlToObjects(JTSYQCustom.XZDM_Reflect, true); var doc = WordRead.Read(JTSYQCustom.ZhiJieRenZhengMing); WordWrite.ReplaceText(doc, ClazzDic, xzdm); //查看是村不是组 if (Utils.IsStrNull(xzdm.CunZu)) { WordWrite.SaveToFile(doc, saveDir + "/04指界人身份证明及指界委托书" + xzdm.Cun + ".doc"); } else { WordWrite.SaveToFile(doc, saveDir + "/04指界人身份证明及指界委托书/" + xzdm.CunZu + ".doc"); } } }
private List <MyAction> ExportCun_GongShiTuActions(IList <XZDM> cunXZDM, string bootDir) { List <MyAction> actions = new List <MyAction>(); List <JTSYQ> list = new List <JTSYQ>(); foreach (XZDM xzdm in cunXZDM) { Action action = new Action(() => { IList <JTSYQ> jtsyqs = JTSYQCustom.GetMapJTSYQ(" BM LIKE '*" + xzdm.DJZQDM + "*'"); if (Utils.CheckListExists(jtsyqs)) { xzdm.JTSYQS = jtsyqs; string saveDir = bootDir + "/" + xzdm.Cun + "/"; JTSYQDao.ExportCun_GongShiTuActions(xzdm, saveDir); } }); MyAction myAction = new MyAction(action, xzdm.CunZu + "公示图"); actions.Add(myAction); } return(actions); }
public List <MyAction> ExportZu_ZhongDiTuActions(IList <XZDM> xzdms, string bootDir) { List <MyAction> actions = new List <MyAction>(); List <JTSYQ> list = new List <JTSYQ>(); foreach (XZDM xzdm in xzdms) { IList <JTSYQ> jtsyqs = XZDMCustom.GetSelectJTSYQ(xzdm); if (Utils.CheckListExists(jtsyqs)) { list.AddRange(jtsyqs); } } List <JTSYQ> list2 = new List <JTSYQ>(); foreach (JTSYQ jtsyq in list) { list2.AddRange(jtsyq.GroupJTSYQ); } JTSYQCustom.SetJZD(list2); foreach (JTSYQ jtsyq in list) { XZDM xzdm = jtsyq.XZDM; Action action = new Action(() => { string saveDir = bootDir + xzdm.Cun + "/" + xzdm.Zu; JTSYQDao.ExportZu_ZhongDiTu(jtsyq, saveDir); }); MyAction myAction = new MyAction(action, xzdm.CunZu + "宗地图 "); actions.Add(myAction); } return(actions); }
public void ExportJZDTable(JTSYQ GroupJTSYQ, string dir) { JTSYQCustom.OrderByJZDH(GroupJTSYQ); List <JZD> jzds = new List <JZD>(); double pingFangArea = 0; foreach (JTSYQ jtsyq in GroupJTSYQ.GroupJTSYQ) { pingFangArea += Decimal.ToSingle(decimal.Round(new decimal(jtsyq.Shape_Area), 2)); IList <JZD> temp = jtsyq.JZDS; if (temp == null) { return; } jzds.AddRange(temp); } double area = GroupJTSYQ.Area; GroupJTSYQ.Area = Math.Round(pingFangArea, 2); ISheet sheet = JZDCustom.CreateJZDSheet(jzds); sheet.Workbook.SetSheetName(0, GroupJTSYQ.BM); Dictionary <string, XMLObject> xmlobjectDic = XMLRead.XmlToObjects(JTSYQCustom.JZDXMLRelfect, false); ExcelWrite.ReplaceTextByXMLObject(sheet, GroupJTSYQ, xmlobjectDic); Dictionary <string, XMLObject> xmlobjectDic2 = XMLRead.XmlToObjects(JTSYQCustom.XZDM_Reflect, true); ExcelWrite.ReplaceTextByXMLObject(sheet, GroupJTSYQ.XZDM, xmlobjectDic2); ExcelWrite.Save(sheet.Workbook, dir + "\\06界址点成果表" + GroupJTSYQ.XZDM.Zu + ".xls"); GroupJTSYQ.Area = area; }
/// <summary> /// 得到所有本村所有集体所有权 /// </summary> /// <param name="xzdm">村</param> /// <returns></returns> public static IList <JTSYQ> GetCunZuAllJTSYQ(XZDM xzdm) { string bm = xzdm.DJZQDM; string sql = " BM LIKE '*" + bm + "*'"; IList <JTSYQ> jtsyqs = JTSYQCustom.GetMapJTSYQ(sql); JTSYQCustom.OrderByBM(jtsyqs); IList <JTSYQ> jtsyqGroup = JTSYQCustom.GroupByZu(jtsyqs); return(jtsyqGroup); }
private void ok() { if (siziE == null || jtsyq == null) { return; } JTSYQCustom jTSYQCustom = new JTSYQCustom(jtsyq); Dictionary <string, IList <IFeature> > featuresDic = ArcGisUtils.GetFeatureDicByLayer(features); //其他集体所有权 IList <IFeature> siziFeatures; if (featuresDic.TryGetValue(JTSYQCustom.JTSYQLayerName, out siziFeatures)) { IList <JTSYQ> sizeJTSYQS = JTSYQCustom.FeaturesToJTSYQ(siziFeatures); jTSYQCustom.SetSiZi(siziE, sizeJTSYQS); } jTSYQCustom.ArcGisSave(); }
/// <summary> /// 设置多个四至 /// </summary> /// <param name="features"></param> private void SetJTSYQSiZi(PreviewKeyDownEventArgs e) { if (CurrentJTSYQ == null) { return; } IList <IFeature> features = ArcGisUtils.GetInstance().GetSelectFeature(); if (!MyUtils.Utils.CheckListExists(features)) { return; } JTSYQCustom jTSYQCustom = new JTSYQCustom(CurrentJTSYQ); Dictionary <string, IList <IFeature> > featuresDic = ArcGisUtils.GetFeatureDicByLayer(features); //其他集体所有权 IList <IFeature> siziFeatures; if (featuresDic.TryGetValue(JTSYQCustom.JTSYQLayerName, out siziFeatures)) { IList <JTSYQ> siziJTSYQS = JTSYQCustom.FeaturesToJTSYQ(siziFeatures); if (!MyUtils.Utils.CheckListExists(siziJTSYQS)) { return; } //移除自身地块 int count = siziJTSYQS.Count; for (int a = 0; a < count; a++) { JTSYQ round = siziJTSYQS[a]; if (round.Feature.OID == CurrentJTSYQ.Feature.OID) { siziJTSYQS.RemoveAt(a); count--; a--; } } jTSYQCustom.SetSiZi(e, siziJTSYQS); } jTSYQCustom.ArcGisSave(); //更新显示的table中 的josn数据 }
/// <summary> /// 集体所有权转 行政代码 /// </summary> /// <param name="jtsyqs"></param> /// <returns></returns> public static IList <XZDM> JTSYQToXZDM(IList <JTSYQ> jtsyqs) { IList <XZDM> xzdms = XZDMCustom.GetExcelXZDM(); IList <XZDM> list = new List <XZDM>(); IList <JTSYQ> jtsqyGroups = JTSYQCustom.GroupByZu(jtsyqs); // Dictionary<string, IList<JTSYQ>> jtsyqDic = Utils.GetGroupDicToList("BM", jtsyqs); Dictionary <string, XZDM> xzdmsDic = Utils.GetGroupDic("DJZQDM", xzdms); XZDM xzdm; foreach (JTSYQ groupJTSYQ in jtsqyGroups) { string bm = groupJTSYQ.BM; if (bm.EndsWith("JA00998")) { } if (!xzdmsDic.TryGetValue(bm.Replace("JA000", ""), out xzdm)) { if (bm.Contains("99")) { bm = bm.Substring(0, 12); if (!xzdmsDic.TryGetValue(bm, out xzdm)) { if (!xzdmsDic.TryGetValue(bm.Substring(0, 9), out xzdm)) { xzdm = null; } } } } if (xzdm != null) { xzdm.JTSYQS = groupJTSYQ.GroupJTSYQ; xzdm.JTSYQ = groupJTSYQ; //list.Add(xzdm); } } return(xzdmsDic.Values.ToList()); }
/// <summary> /// 表格双击 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void Table_Click(object sender, MouseButtonEventArgs e) { GridControl gridControl = sender as GridControl; GridColumn column = gridControl.CurrentColumn as GridColumn; MapTabDictoryCustom row = gridControl.CurrentItem as MapTabDictoryCustom; if (column.VisibleIndex == objectIndex) { } //图形缩放 var obj = gridControl.CurrentItem; int objectId = (int)row.Dic["OBJECTID"]; IFeature feature = featureDic[objectId]; if (pLayer.Name == JTSYQCustom.JTSYQLayerName) { MapForm.CurrentJTSYQ = JTSYQCustom.FeaturesToJTSYQ(feature); MapForm.CurrentJTSYQ.MapTabDictoryCustom = row; } ArcGisUtils.ExtentShp(feature, pLayer, 2); }
public List <MyAction> ExportZu_QuanJiDiaoChaBiaoActions(IList <XZDM> xzdms, string bootDir) { List <MyAction> actions = new List <MyAction>(); List <JTSYQ> list2 = new List <JTSYQ>(); foreach (XZDM xzdm in xzdms) { IList <JTSYQ> jtsyqs = xzdm.JTSYQS; if (Utils.CheckListExists(jtsyqs)) { list2.AddRange(jtsyqs); } } JTSYQCustom.SetJZD(list2); JTSYQCustom.SetQZB(list2); string saveDir; foreach (XZDM xzdm in xzdms) { if (xzdm.JTSYQ != null) { Action action = new Action(() => { if (Utils.IsStrNull(xzdm.Zu)) { saveDir = bootDir + xzdm.Cun + "//村集体"; } else { saveDir = bootDir + xzdm.Cun + "//" + xzdm.Zu; } JTSYQDao.ExportZu_QuanJiDiaoChaBiao(xzdm.JTSYQ, saveDir); }); MyAction myAction = new MyAction(action, xzdm.CunZu + "权籍调查表 "); actions.Add(myAction); } } return(actions); }
private void OpenMxd2_Click(object sender, ItemClickEventArgs e) { //集体所有权添加行政代码view mapFormCustom = MapFormCustom.GetInstance(); //添加地图文档 AddDocument(mapFormCustom); MapTableCommand.dataPage = dataPage; MapTableCommand.tabbedGroup = tabbedGroup; MapTableCustom.SetPageSource(pageView); try { tvProperty.ItemsSource = JTSYQCustom.GetXZDMTree(); if (tvProperty.ItemsSource == null) { MessageBox.Show("请重新配置工程文件!!!"); return; } } catch (Exception e1) { MessageBox.Show("行政代码表有问题:" + e1.Message); } AddDocument(MapFormCustom.GetInstance()); UserControl map = mapFormCustom; int index; if (DocumentGroupTitleDic.TryGetValue(map.Uid as string, out index)) { documentGroup.SelectedTabIndex = index; } else { AddDocument(map); } }
private void Check_Click(object sender, RoutedEventArgs e) { List <MyAction> actions = new List <MyAction>(); SoftwareConfig.SaveRedis(JTSYQCheckDataViewModel.RedisKey, model); IList <JTSYQ> jtsyqs = MainWindow.mainWindow.GetSelectJTSYQS(); if (!MyUtils.Utils.CheckListExists(jtsyqs)) { MessageBox.Show("你还没有选择行政区!!!"); return; } if (model.BasicData) { actions.AddRange(JTSYQCustom.CheckDataActions(jtsyqs)); } if (model.Angle) { actions.AddRange(JTSYQCustom.CheckAngle(jtsyqs, model.AngleValue)); } SingleTaskForm taskForm = new SingleTaskForm(actions, "检查"); }
private void Submit_Click(object sender, RoutedEventArgs e) { //保存缓存 model.SaveRedis(); if (MyUtils.Utils.IsStrNull(model.SaveDir)) { MessageBox.Show("没有选择保存的位置"); } else if (MyUtils.Utils.CheckDirExists(model.SaveDir)) { if (MyUtils.Utils.MessageBoxShow("确定导出资料")) { //输出文件 JTSYQCustom.ReflushJTSYQ(XZDMCustom.GetSelect(MainWindow.mainWindow.tvProperty.Items)); IList <XZDM> xzdms = XZDMCustom.GetSelect(MainWindow.mainWindow.tvProperty.Items); JTSYQController.Export(model, xzdms); } } else { MessageBox.Show("保存的位置不存在,请重新选择!!!"); } }
/// <summary> /// 设置周围的界址线 /// </summary> /// <param name="jtsyqs"></param> public static List <JZX> SetJZX(IList <JTSYQ> jtsyqs) { List <JZX> list = new List <JZX>(); IList <JTSYQ> otherJTSYQS = new List <JTSYQ>(); foreach (JTSYQ jtsyq in jtsyqs) { IGeometry geometry = jtsyq.Feature.Shape; //相交的面 IList <IFeature> intersectFeature = ArcGisUtils.GetSeartchFeatures(JTSYQCustom.GetLayer(), geometry.Envelope, esriSpatialRelEnum.esriSpatialRelIntersects); IList <JTSYQ> interJTSYQS = JTSYQCustom.FeaturesToJTSYQ(intersectFeature); IList <JZX> jzxs = new List <JZX>(); foreach (JTSYQ inter in interJTSYQS) { if (JTSYQHasObject(inter.OBJECTID, jtsyqs)) { continue; } JZX jzx = new JZX(); jzx.BM = inter.BM; jzx.QLR = inter.QLR; jzx.JTSYQOBJECTID = inter.OBJECTID; IEnvelope envelope = jtsyq.Feature.Shape.Envelope; IPolyline pl2 = ArcGisUtils.PolygonToPolyline(inter.Feature.Shape as IPolygon); IGeometry clipGeometry = ArcGisUtils.GeometryClip(pl2, ArcGisUtils.ScaleEnvelope(envelope, 1.2)); jzx.Polyline = clipGeometry as IPolyline; jzxs.Add(jzx); inter.SelfJZX = jzx; otherJTSYQS.Add(inter); } jtsyq.JZXS = jzxs; } //移除重复的地块 int count = otherJTSYQS.Count; /* for (int a =0; a < count; a++) * { * JTSYQ j1 = otherJTSYQS[a]; * * for (int b= a+1; b < count;b++) * { * JTSYQ j2 = otherJTSYQS[b]; * if(j1.OBJECTID == j2.OBJECTID) * { * otherJTSYQS.RemoveAt(b); * b--; * count--; * } * } * * }*/ //移除被大地块所包含的 for (int a = 0; a < count; a++) { JTSYQ j1 = otherJTSYQS[a]; IList <IFeature> containsFeature = ArcGisUtils.GetSeartchFeatures(JTSYQCustom.GetLayer(), ArcGisUtils.ScaleEnvelope(j1.Feature.Shape.Envelope, 0.9), esriSpatialRelEnum.esriSpatialRelContains); IList <JTSYQ> containsJTSYQS = JTSYQCustom.FeaturesToJTSYQ(containsFeature); if (containsJTSYQS != null) { for (int c = 0; c < containsJTSYQS.Count; c++) { for (int b = 0; b < count; b++) { if (a == b) { //除自己 continue; } JTSYQ j2 = otherJTSYQS[b]; if (containsJTSYQS[c].OBJECTID == j2.OBJECTID) { otherJTSYQS.RemoveAt(b); b--; count--; } } } } } List <JZX> lastJZXS = new List <JZX>(); foreach (JTSYQ jtsyq in otherJTSYQS) { lastJZXS.Add(jtsyq.SelfJZX); } //groupJTSYQ.JZXS = lastJZXS; return(lastJZXS); }
public IList <JTSYQ> GetJTSYQS(IList <IFeature> list) { return(JTSYQCustom.FeaturesToJTSYQ(list)); }
public void ExportCun_GongShiTuActions(XZDM cunXZDM, string saveDir) { //IList<JTSYQ> jtsyqs = null; //得到所有界址短线 IList <JZX> jzxs = JZXCustom.SetJZX(cunXZDM.JTSYQS); //从中删除本村的界址短线 for (int a = 0; a < jzxs.Count; a++) { JZX jzx = jzxs[a]; string str = jzx.BM.Substring(0, 12); if (str == cunXZDM.DJZQDM) { jzxs.RemoveAt(a); a--; } } string mxdPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQGSTMxd); string mdbPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQGSTMDB); //1、复制maxd FileUtils.CopyFile(JTSYQCustom.JTSYQGSTMxd, mxdPath); //2、复制数据库 FileUtils.CopyFile(JTSYQCustom.JTSYQZDTMdb, mdbPath); //打开工作文件 MapDocumentClass mapDocument = new MapDocumentClass(); mapDocument.Open(mxdPath, ""); AxMapControl mapControl = ArcGisUtils.axMapControl; IMap map = mapDocument.Map[0]; mapControl.Map = map; //3、设置数据源,数据源是相对路径,不需要设置 //4、复制 本村的界址线shap JTSYQCustom.SaveMap(cunXZDM.JTSYQS); //设置本村的界址点标注 JTSYQCustom.SaveJTSYQBZMap(map, cunXZDM.JTSYQS); JZXCustom.SaveJZXMap(jzxs); JZXCustom.SaveJZXBZMap(map, jzxs); double scale = 100.0; // mapControl.Extent = JTSYQCustom.SetExtent(cunXZDM.JTSYQS); ArcGisUtils.axMapControl.Extent = JTSYQCustom.GetLayer().AreaOfInterest; double num = (double)((int)((map.MapScale + 30.0) / scale) * scale + scale); //mapControl.MapScale = 329; ArcGisUtils.ChangeMapScale(mapDocument, num); //5、替换文字内容, Dictionary <string, XMLObject> xmlObjectDic = XMLRead.XmlToObjects(JTSYQCustom.XZDM_Reflect, true); XMLObject xmlObject = new XMLObject { Column = "BLC", Deafult = "1:" + num }; xmlObjectDic.Add("BLC", xmlObject); ArcGisService.ReplaceText(cunXZDM, xmlObjectDic, mapDocument); //使用的xml缓存,必须移除 xmlObjectDic.Remove("BLC"); //6、工程文件保留 mapDocument.Save(); mapDocument.Close(); ArcGisUtils.Refresh(); }
public void ExportZu_ZhongDiTu(JTSYQ jtsyqGroup, string saveDir) { IList <JZX> jzxs = JZXCustom.SetJZX(jtsyqGroup.GroupJTSYQ); string mxdPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQZDTMxd); string mdbPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQZDTMdb); //1、复制maxd FileUtils.CopyFile(JTSYQCustom.JTSYQZDTMxd, mxdPath); //2、复制数据库 FileUtils.CopyFile(JTSYQCustom.JTSYQZDTMdb, mdbPath); //打开工作文件 MapDocumentClass mapDocument = new MapDocumentClass(); mapDocument.Open(mxdPath, ""); AxMapControl mapControl = ArcGisUtils.axMapControl; IMap map = mapDocument.Map[0]; mapControl.Map = map; //3、设置数据源,数据源是相对路径,不需要设置 //4、复制shap JTSYQCustom.SaveMap(jtsyqGroup.GroupJTSYQ); JTSYQCustom.SaveJTSYQBZMap(map, jtsyqGroup.GroupJTSYQ); IList <JZD> jzds = JZDCustom.SaveMap(jtsyqGroup); JZXCustom.SaveJZXMap(jzxs); JZXCustom.SaveJZXBZMap(map, jzxs); JZDCustom.SaveJZDBZMap(map, jzds); double scale = 100.0; mapControl.Extent = JTSYQCustom.SetExtent(jtsyqGroup.GroupJTSYQ); double num = (double)((int)((map.MapScale + 30.0) / scale) * scale + scale); //mapControl.MapScale = 329; ArcGisUtils.ChangeMapScale(mapDocument, num); //5、替换文字内容, int index = 0; for (int a = 0; a > -1; a++) { string tufu = jtsyqGroup.TuFu; if (Utils.IsStrNull(tufu)) { MessageBox.Show("你还没有生成图幅号!!!:" + jtsyqGroup.QLR); ArcGisUtils.Refresh(); return; } index = tufu.IndexOf("、", index + 1); if (index == -1) { break; } if (a % 2 != 0) { jtsyqGroup.TuFu = tufu.Insert(index + 1, "\n"); } } Dictionary <string, XMLObject> xmlObjectDic = XMLRead.XmlToObjects(JTSYQCustom.JTSYQ_Reflect, true); XMLObject xmlObject = new XMLObject { Column = "BLC", Deafult = "1:" + num }; xmlObjectDic.Add("BLC", xmlObject); ArcGisService.ReplaceText(jtsyqGroup, xmlObjectDic, mapDocument); //使用的xml缓存,必须移除 xmlObjectDic.Remove("BLC"); //6、工程文件保留 mapDocument.Save(); mapDocument.Close(); ArcGisUtils.Refresh(); }
/// <summary> /// 多部件是合并的,指向同一个行政代码 /// </summary> /// <returns></returns> public IList <JTSYQ> GetSelectJTSYQS() { return(JTSYQCustom.GetSelectJTSYQ(PropertyNodeItem.FindSelect(tvProperty.Items))); }
/// <summary> /// 导出checkbox 中的资料 /// </summary> /// <param name="model"></param> /// <param name="xzdms"></param> public void Export(ExportDataPageViewModel model, IList <XZDM> xzdms) { //更新数据 IList <XZDM> cunXZDM = new List <XZDM>(); IList <XZDM> zuXZDM = new List <XZDM>(); IList <JTSYQ> groupJTSYQ = new List <JTSYQ>(); //IList<JTSYQ> foreach (XZDM xzdm in xzdms) { string bm = xzdm.DJZQDM; if (bm.Length == 14) { zuXZDM.Add(xzdm); } else { cunXZDM.Add(xzdm); } if (xzdm.JTSYQ != null) { Dictionary <string, IList <JZD> > jzdDic = MyUtils.Utils.GetGroupDicToList("JTSYQOBJECTID", JZDCustom.GetMapJZD()); IList <JZD> jzds; groupJTSYQ.Add(xzdm.JTSYQ); foreach (JTSYQ child in xzdm.JTSYQ.GroupJTSYQ) { if (jzdDic.TryGetValue(child.OBJECTID + "", out jzds)) { if (jzdDic.TryGetValue(child.OBJECTID + "", out jzds)) { //注入界址点 child.JZDS = jzds; } } } //设置包含的面积 } } List <MyAction> actions = new List <MyAction>(); if (model.Cun_JiTiTuDiDiaoChaBiao || model.Zu_QuanJiDiaoChaBiao || model.Zu_ShengPiBiao) { actions.Add(new MyAction(new Action(() => { foreach (JTSYQ jtsyq in groupJTSYQ) { JTSYQCustom.SetContainsFeatureArea(jtsyq); } }), "刷新包含的二调面积")); } string saveDir = model.SaveDir + "\\"; if (model.Zu_DangAnDai) { actions.AddRange(ExportZu_DangAnDaiActions(groupJTSYQ, saveDir)); } if (model.Zu_TuDiQuanShuZhengMing) { actions.AddRange(ExportZu_TuDiQuanShuLaiYuanZhengMingActions(xzdms, saveDir)); } if (model.Zu_FaRenDaiBiaoZhengMing) { actions.AddRange(ExportZu_FaRenDaiBiaoShenFengZhengMingActions(xzdms, saveDir)); } if (model.Zu_FaRenDaiBiaoWeiTuoShu) { actions.AddRange(ExportZu_FaRenDaiBiaoWeiTuoShuActions(xzdms, saveDir)); } if (model.Zu_ZhiJieRenZhengMing) { actions.AddRange(ExportZu_ZhiJieRenShenFengZhengMingActions(xzdms, saveDir)); } if (model.Zu_ShengPiBiao) { actions.AddRange(ExportZu_ShenPiBiaoActions(xzdms, saveDir)); } if (model.Zu_JieZhiDianChengGuoBiao) { actions.AddRange(ExportJZDTableActions(groupJTSYQ, saveDir)); } if (model.Zu_QuanJiDiaoChaBiao) { actions.AddRange(ExportZu_QuanJiDiaoChaBiaoActions(xzdms, saveDir)); } if (model.Zu_RuKuDanZhongDiBiao) { actions.AddRange(ExportZu_ZhongDiBiaoActions(xzdms, saveDir)); } if (model.Zu_ZhongDiTu) { actions.AddRange(ExportZu_ZhongDiTuActions(xzdms, saveDir)); } if (model.Cun_DangAnDai) { actions.AddRange(ExportCunDangAnDaiActions(cunXZDM, saveDir)); } if (model.Cun_GongGaoFanKuiYiJianShu) { actions.AddRange(ExportCunYiJianFanKuaiShuActions(cunXZDM, saveDir)); } if (model.Cun_GongShiFanKuiYiJianShu) { actions.AddRange(ExportCunYiJianFanKuaiShu_GongShiActions(cunXZDM, saveDir)); } if (model.Cun_QueQuanJieGuoGongGao) { actions.AddRange(ExportCunJieGuo_GongGaoActions(cunXZDM, saveDir)); } if (model.Cun_QueQuanJieGuoGongShi) { actions.AddRange(ExportCunJieGuo_GongShiActions(cunXZDM, saveDir)); } if (model.Cun_GongGaoBiao) { actions.AddRange(ExportCun_GongShiActions(cunXZDM, saveDir)); } if (model.Cun_GongShiBiao) { actions.AddRange(ExportCun_GongGaoActions(cunXZDM, saveDir)); } if (model.Cun_JiTiTuDiDiaoChaBiao) { actions.AddRange(ExportCun_JiTiTuDiDiaoChaBiaoActions(cunXZDM, zuXZDM, saveDir)); } if (model.Cun_GongShiTu) { actions.AddRange(ExportCun_GongShiTuActions(cunXZDM, saveDir)); } SingleTaskForm task = new SingleTaskForm(actions, "导表"); }
private IList <JZD> ExtractJzd(JTSYQ dk, IFeatureLayer dkLayer, IFeatureLayer jzdLayer) { IFeature feature = dk.Feature; IPolygon polygon = feature.Shape as IPolygon; IPointCollection pointCollection = polygon as IPointCollection; IList <JZD> list = new List <JZD>(); int num = pointCollection.PointCount - 2; IPoint point = new PointClass(); point.X = 0.0; point.Y = 0.0; IList <JTSYQ> list2 = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(num), dkLayer)); IList <JTSYQ> list3 = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(0), dkLayer)); IList <JTSYQ> entity = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(1), dkLayer)); for (int i = 0; i <= num; i++) { IPoint point2 = pointCollection.get_Point(i); int num2 = list3.Count <JTSYQ>(); bool flag2 = num2 > list2.Count || num2 > entity.Count; if (flag2) { JZD JZD = new JZD(); JZD.JZDIndex = i; JZD.Point = point2; list.Add(JZD); point = point2; } else { bool flag3 = num2 != 1 && this.DifferentDks(list3, list2); if (flag3) { JZD JZD = new JZD(); JZD.JZDIndex = i; JZD.Point = point2; list.Add(JZD); point = point2; } else { double num3 = ArcGisUtils.CalculateTwoPt(point2, point); bool flag4 = i == 0; double num4 = -1; if (flag4) { num4 = ArcGisUtils.Angle(point2, pointCollection.get_Point(num), pointCollection.get_Point(1)); } else { bool flag5 = i == num; if (flag5) { num4 = ArcGisUtils.Angle(point2, pointCollection.get_Point(i - 1), pointCollection.get_Point(0)); double num5 = ArcGisUtils.CalculateTwoPt(point2, pointCollection.get_Point(0)); bool flag6 = num5 < num3; if (flag6) { num3 = num5; } } else { num4 = ArcGisUtils.Angle(point2, pointCollection.get_Point(i - 1), pointCollection.get_Point(i + 1)); } } bool flag7 = num4 < 150; if (flag7) { bool flag8 = num4 <130.0 || num3> 2.0; if (flag8) { //检查与上一个 int count = list.Count - 1; if (count >= 0) { double di = ArcGisUtils.CalculateTwoPt(point2, list[count].Point); if (di > 1) { //有上一个点的话,要大于50距离才增加 JZD JZD = new JZD(); JZD.JZDIndex = i; JZD.Point = point2; list.Add(JZD); point = point2; } } else { JZD JZD = new JZD(); JZD.JZDIndex = i; JZD.Point = point2; list.Add(JZD); point = point2; } } else { IList <IFeature> featureCursor = ArcGisUtils.CircleSelect(point2, jzdLayer); if (Utils.CheckListExists(featureCursor)) { JZD JZD = new JZD(); JZD.JZDIndex = i; JZD.Point = point2; list.Add(JZD); point = point2; } } } } } list2 = list3; list3 = entity; bool flag10 = i != num; if (flag10) { entity = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(i + 2), dkLayer)); } else { entity = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(0), dkLayer)); } } return(list); }