/// <summary> /// 在数据集中构建拓扑(GP方法) /// </summary> /// <param name="IN_TopoName">要生成拓扑的名称</param> /// <param name="IN_Tolerance">拓扑容差,可选,默认0.001</param> public void PUB_TopoBuildWithGP(string IN_TopoName, double IN_Tolerance = 0.001) { IWorkspace FeatureWorkSpace = FeatureDataset_Main.Workspace; ITopologyWorkspace TopoWorkSpace = FeatureWorkSpace as ITopologyWorkspace; try//若不存在同名拓扑则添加 { Topology = TopoWorkSpace.OpenTopology(IN_TopoName); MessageBox.Show("已存在该拓扑,无法添加!"); } catch { CreateTopology Topotool = new CreateTopology();//拓扑GP工具 Topotool.in_dataset = FeatureDataset_Main;; Topotool.out_name = IN_TopoName; Topotool.in_cluster_tolerance = IN_Tolerance; try { GP_Tool.Execute(Topotool, null); Topology = TopoWorkSpace.OpenTopology(IN_TopoName); } catch (COMException comExc) { MessageBox.Show(String.Format("拓扑创建出错: {0} 描述: {1}", comExc.ErrorCode, comExc.Message)); } } }
/// <summary> /// 在数据集中构建拓扑(GP方法) /// </summary> /// <param name="IN_TopoName">要生成拓扑的名称</param> /// <param name="IN_Tolerance">拓扑容差,可选,默认0.001</param> public void PUB_TopoBuildWithGP(string IN_TopoName, double IN_Tolerance = 0.001) { TP_topoName = IN_TopoName; IWorkspace FeatureWorkSpace = FeatureDataset_Main.Workspace; ITopologyWorkspace TopoWorkSpace = FeatureWorkSpace as ITopologyWorkspace; try//若不存在同名拓扑则添加 { Topology = TopoWorkSpace.OpenTopology(IN_TopoName); CommonClass common = new CommonClass(); common.DeleteTopolgyFromGISDB(Topology); DeleteFeature(TP_topoName); } catch { } CreateTopology Topotool = new CreateTopology();//拓扑GP工具 Topotool.in_dataset = FeatureDataset_Main;; Topotool.out_name = IN_TopoName; Topotool.in_cluster_tolerance = IN_Tolerance; try { GP_Tool.Execute(Topotool, null); Topology = TopoWorkSpace.OpenTopology(IN_TopoName); } catch (COMException comExc) { MessageBox.Show(String.Format("拓扑创建出错: {0} 描述: {1}", comExc.ErrorCode, comExc.Message)); } }
private void btnOpenCreateTopology_Click(object sender, EventArgs e) { CreateTopology createTopology = new CreateTopology(); createTopology.ShowDialog(); }