/// <summary>Snippet for GetWorkspace</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void GetWorkspaceResourceNames() { // Create client TablesServiceClient tablesServiceClient = TablesServiceClient.Create(); // Initialize request argument(s) WorkspaceName name = WorkspaceName.FromWorkspace("[WORKSPACE]"); // Make the request Workspace response = tablesServiceClient.GetWorkspace(name); }
/// <summary>Snippet for GetWorkspaceAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task GetWorkspaceResourceNamesAsync() { // Create client TablesServiceClient tablesServiceClient = await TablesServiceClient.CreateAsync(); // Initialize request argument(s) WorkspaceName name = WorkspaceName.FromWorkspace("[WORKSPACE]"); // Make the request Workspace response = await tablesServiceClient.GetWorkspaceAsync(name); }
/// <summary>Snippet for GetWorkspace</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public void GetWorkspaceRequestObject() { // Create client TablesServiceClient tablesServiceClient = TablesServiceClient.Create(); // Initialize request argument(s) GetWorkspaceRequest request = new GetWorkspaceRequest { WorkspaceName = WorkspaceName.FromWorkspace("[WORKSPACE]"), }; // Make the request Workspace response = tablesServiceClient.GetWorkspace(request); }
/// <summary>Snippet for GetWorkspaceAsync</summary> /// <remarks> /// This snippet has been automatically generated for illustrative purposes only. /// It may require modifications to work in your environment. /// </remarks> public async Task GetWorkspaceRequestObjectAsync() { // Create client TablesServiceClient tablesServiceClient = await TablesServiceClient.CreateAsync(); // Initialize request argument(s) GetWorkspaceRequest request = new GetWorkspaceRequest { WorkspaceName = WorkspaceName.FromWorkspace("[WORKSPACE]"), }; // Make the request Workspace response = await tablesServiceClient.GetWorkspaceAsync(request); }
/// <summary>Snippet for GetWorkspaceAsync</summary> public async Task GetWorkspaceResourceNamesAsync() { // Snippet: GetWorkspaceAsync(WorkspaceName, CallSettings) // Additional: GetWorkspaceAsync(WorkspaceName, CancellationToken) // Create client TablesServiceClient tablesServiceClient = await TablesServiceClient.CreateAsync(); // Initialize request argument(s) WorkspaceName name = WorkspaceName.FromWorkspace("[WORKSPACE]"); // Make the request Workspace response = await tablesServiceClient.GetWorkspaceAsync(name); // End snippet }
public static IFeatureClassName GetFeatureClassName(IFeatureClass pfc) { IDataset pDS = pfc as IDataset; IWorkspaceName workspaceName = new WorkspaceName() as IWorkspaceName; workspaceName = pDS.FullName as IWorkspaceName; IFeatureClassName featureClassName = new FeatureClassName() as IFeatureClassName; IDatasetName datasetName = (IDatasetName)featureClassName; datasetName.Name = pDS.Name; datasetName.WorkspaceName = workspaceName; return(featureClassName); }
/// <summary>Snippet for GetWorkspaceAsync</summary> public async Task GetWorkspaceRequestObjectAsync() { // Snippet: GetWorkspaceAsync(GetWorkspaceRequest, CallSettings) // Additional: GetWorkspaceAsync(GetWorkspaceRequest, CancellationToken) // Create client TablesServiceClient tablesServiceClient = await TablesServiceClient.CreateAsync(); // Initialize request argument(s) GetWorkspaceRequest request = new GetWorkspaceRequest { WorkspaceName = WorkspaceName.FromWorkspace("[WORKSPACE]"), }; // Make the request Workspace response = await tablesServiceClient.GetWorkspaceAsync(request); // End snippet }
public void GetWorkspaceResourceNames() { moq::Mock <TablesService.TablesServiceClient> mockGrpcClient = new moq::Mock <TablesService.TablesServiceClient>(moq::MockBehavior.Strict); GetWorkspaceRequest request = new GetWorkspaceRequest { WorkspaceName = WorkspaceName.FromWorkspace("[WORKSPACE]"), }; Workspace expectedResponse = new Workspace { WorkspaceName = WorkspaceName.FromWorkspace("[WORKSPACE]"), DisplayName = "display_name137f65c2", Tables = { new Table(), }, }; mockGrpcClient.Setup(x => x.GetWorkspace(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse); TablesServiceClient client = new TablesServiceClientImpl(mockGrpcClient.Object, null); Workspace response = client.GetWorkspace(request.WorkspaceName); xunit::Assert.Same(expectedResponse, response); mockGrpcClient.VerifyAll(); }
public static void Project(IFeatureDataset ifeatureDataset_0, ISpatialReference ispatialReference_0, IWorkspace iworkspace_0, string string_0) { IGeometryDef geometryDefClass = new GeometryDef(); ISpatialReference spatialReference = ((IGeoDataset)ifeatureDataset_0).SpatialReference; ((IGeometryDefEdit)geometryDefClass).SpatialReference_2 = ispatialReference_0; IWorkspace workspace = ifeatureDataset_0.Workspace; IFeatureDataConverter featureDataConverterClass = new FeatureDataConverter(); IWorkspaceName workspaceNameClass = new WorkspaceName() as IWorkspaceName as IWorkspaceName; workspaceNameClass.ConnectionProperties = workspace.ConnectionProperties; workspaceNameClass.WorkspaceFactoryProgID = workspace.WorkspaceFactory.GetClassID().Value.ToString(); IWorkspaceName connectionProperties = new WorkspaceName() as IWorkspaceName as IWorkspaceName; PropertySet propertySetClass = new PropertySet(); connectionProperties.ConnectionProperties = iworkspace_0.ConnectionProperties; connectionProperties.WorkspaceFactoryProgID = iworkspace_0.WorkspaceFactory.GetClassID().Value.ToString(); IDatasetName featureDatasetNameClass = new FeatureDatasetName() as IDatasetName; string name = ifeatureDataset_0.Name; int num = name.LastIndexOf("."); if (num != -1) { name = name.Substring(num + 1); } featureDatasetNameClass.Name = name; featureDatasetNameClass.WorkspaceName = workspaceNameClass; IDatasetName datasetName = new FeatureDatasetName() as IDatasetName; { datasetName.WorkspaceName = connectionProperties; datasetName.Name = string_0; } ; featureDataConverterClass.ConvertFeatureDataset((IFeatureDatasetName)featureDatasetNameClass, (IFeatureDatasetName)datasetName, geometryDefClass, "", 1000, 0); }
private void button1_Click(object sender, EventArgs e) { if (this.textBox1.Text != null && this.textBox1.Text.Length >= 2) { try { IWorkspaceName workspaceName = new WorkspaceName() as IWorkspaceName; workspaceName.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory"; workspaceName.PathName = this.textBox1.Text; if (!Directory.Exists(this.textBox1.Text)) { Directory.CreateDirectory(this.textBox1.Text); } Clip.ExtractSpecifyHRegFeatures(workspaceName, this.imap_0, this.igeometry_0); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } base.Close(); } }
/// <summary> /// 导出图层中选定要素到单独的shp文件 /// </summary> /// <param name="featureLayer">要素图层</param> /// <param name="selectionSet">要素选择集</param> /// <param name="outName">输出shp文件路径</param> public void exportSelectedFeatureToShp(IFeatureLayer featureLayer, ISelectionSet selectionSet, string outName) { if (featureLayer == null) { return; } if (!Directory.Exists(System.IO.Path.GetDirectoryName(outName))) { return; } // 裁剪要素 IDataset dataset = featureLayer as IDataset; IFeatureClassName infeatClassName = dataset.FullName as IFeatureClassName; IDatasetName datasetName = infeatClassName as IDatasetName; // 输出要素类 IFeatureClassName outFeatClassName = new FeatureClassName() as IFeatureClassName; outFeatClassName.FeatureType = esriFeatureType.esriFTSimple; outFeatClassName.ShapeType = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryAny; outFeatClassName.ShapeFieldName = "Shape"; // 输出文件 IDatasetName outDatasetName = outFeatClassName as IDatasetName; outDatasetName.Name = System.IO.Path.GetFileNameWithoutExtension(outName); IWorkspaceName workspaceName = new WorkspaceName() as IWorkspaceName; workspaceName.PathName = System.IO.Path.GetDirectoryName(outName); workspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.ShapefileWorkspaceFactory"; outDatasetName.WorkspaceName = workspaceName; // 导出 IExportOperation exportOper = new ExportOperation(); exportOper.ExportFeatureClass(datasetName, null, selectionSet, null, outFeatClassName, 0); }
public async stt::Task GetWorkspaceResourceNamesAsync() { moq::Mock <TablesService.TablesServiceClient> mockGrpcClient = new moq::Mock <TablesService.TablesServiceClient>(moq::MockBehavior.Strict); GetWorkspaceRequest request = new GetWorkspaceRequest { WorkspaceName = WorkspaceName.FromWorkspace("[WORKSPACE]"), }; Workspace expectedResponse = new Workspace { WorkspaceName = WorkspaceName.FromWorkspace("[WORKSPACE]"), DisplayName = "display_name137f65c2", Tables = { new Table(), }, }; mockGrpcClient.Setup(x => x.GetWorkspaceAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Workspace>(stt::Task.FromResult(expectedResponse), null, null, null, null)); TablesServiceClient client = new TablesServiceClientImpl(mockGrpcClient.Object, null); Workspace responseCallSettings = await client.GetWorkspaceAsync(request.WorkspaceName, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None)); xunit::Assert.Same(expectedResponse, responseCallSettings); Workspace responseCancellationToken = await client.GetWorkspaceAsync(request.WorkspaceName, st::CancellationToken.None); xunit::Assert.Same(expectedResponse, responseCancellationToken); mockGrpcClient.VerifyAll(); }
protected virtual void OnButtonOkClicked(object sender, System.EventArgs e) { if (WorkspaceName.Contains(" ")) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("error_whitespace_work"), "", Gtk.MessageType.Error); md.ShowDialog(); return; } if (WorkspaceRoot.Contains(" ")) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("error_whitespace_work_path"), "", Gtk.MessageType.Error); md.ShowDialog(); return; } if (String.IsNullOrEmpty(WorkspaceName)) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("please_set_workspace_name"), "", Gtk.MessageType.Error); md.ShowDialog(); return; } if (String.IsNullOrEmpty(WorkspaceOutput)) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("please_set_workspace_output"), "", Gtk.MessageType.Error); md.ShowDialog(); return; } if (String.IsNullOrEmpty(WorkspaceRoot)) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("please_set_workspace_root"), "", Gtk.MessageType.Error); md.ShowDialog(); return; } if (project) { if (String.IsNullOrEmpty(ProjectName)) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("please_set_project_name"), "", Gtk.MessageType.Error); md.ShowDialog(); return; } if (ProjectName.Contains(" ")) { MessageDialogs md = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("error_whitespace_proj"), "", Gtk.MessageType.Error); md.ShowDialog(); return; } } this.Respond(ResponseType.Ok); }
private void listView1_DoubleClick(object sender, EventArgs e) { if (this.listView1.SelectedItems.Count != 0) { MyDoubleClickResult myDCRShowChildren; IGxObject tag = this.listView1.SelectedItems[0].Tag as IGxObject; if ((this._gxObjectFilter != null) && (tag is IGxDatabase)) { myDCRShowChildren = MyDoubleClickResult.myDCRShowChildren; this._gxObjectFilter.CanChooseObject(tag, ref myDCRShowChildren); if (myDCRShowChildren == MyDoubleClickResult.myDCRChooseAndDismiss) { this.PassListItem(); return; } } if (!(tag is IGxObjectContainer)) { if (tag is IGxNewDatabase) { IWorkspaceName name; IGxObject obj3; ListViewItem item; if (tag.FullName == "添加OLE DB连接") { try { string path = Environment.SystemDirectory.Substring(0, 2) + @"\Documents and Settings\Administrator\Application Data\ESRI\ArcCatalog\"; string str2 = path + "OLE DB Connection.odc"; if (Directory.Exists(path)) { str2 = this.ChangeODCExtension(str2); IWorkspaceFactory factory = new OLEDBWorkspaceFactory() as IWorkspaceFactory; name = factory.Create(path, System.IO.Path.GetFileName(str2), null, 0); IGxObject gxDatabase = new GxDatabase() as IGxObject; (gxDatabase as IGxDatabase).WorkspaceName = name; gxDatabase.Attach(tag.Parent, this._gxCatalog); item = new ListViewItem(new string[] { gxDatabase.Name, gxDatabase.Category }, this.GetImageIndex(gxDatabase)) { Tag = gxDatabase }; this.listView1.Items.Add(item); } } catch (Exception exception) { exception.ToString(); } } else if (tag.FullName == "添加空间数据库连接") { frmCreateGDBConnection connection = new frmCreateGDBConnection { TopMost = true }; if (connection.ShowDialog() == DialogResult.OK) { IGxObject oneObj = new GxDatabase() as IGxObject; IWorkspaceName name2 = new WorkspaceName() as IWorkspaceName; name2.WorkspaceFactoryProgID = "esriDataSourcesGDB.SdeWorkspaceFactory"; name2.PathName = connection.ConnectionPath; (oneObj as IGxDatabase).WorkspaceName = name2; oneObj.Attach(tag.Parent, this._gxCatalog); item = new ListViewItem(new string[] { oneObj.Name, oneObj.Category }, this.GetImageIndex(oneObj)) { Tag = oneObj }; this.listView1.Items.Add(item); } } } else { this.PassListItem(); } } else { GISDataComboItem ex; if (tag is IGxDataset) { esriDatasetType type = (tag as IGxDataset).Type; myDCRShowChildren = MyDoubleClickResult.myDCRShowChildren; this._gxObjectFilter.CanChooseObject(tag, ref myDCRShowChildren); if ((((type != esriDatasetType.esriDTFeatureDataset) && (type != esriDatasetType.esriDTContainer)) && ((type != esriDatasetType.esriDTRasterCatalog) && (type != esriDatasetType.esriDTCadDrawing))) && (type != esriDatasetType.esriDTRasterDataset)) { this.PassListItem(); return; } } this.LoadViewer(tag); this._isFree = false; if (tag.Parent is IGxCatalog) { for (int i = 0; i < this.gisDataComboBox1.Items.Count; i++) { ex = this.gisDataComboBox1.Items[i] as GISDataComboItem; if (ex.Tag == tag) { this.gisDataComboBox1.SelectedIndex = i; break; } } } else { ex = this.gisDataComboBox1.Items[this.gisDataComboBox1.SelectedIndex] as GISDataComboItem; int degree = ex.Level; ex = new GISDataComboItem(tag.Name, tag.FullName, this.GetImageIndex(tag), degree + 1) { Tag = tag }; int selectedIndex = this.gisDataComboBox1.SelectedIndex; this.gisDataComboBox1.AddChildNode(ex); this.gisDataComboBox1.SelectedIndex = selectedIndex + 1; } this._isFree = true; } } }
private void EndSave() { if (this.txtName.Text.Trim().Length > 0) { GISDataComboItem selectedItem = this.gisDataComboBox1.SelectedItem as GISDataComboItem; IGxObject tag = selectedItem.Tag as IGxObject; if ((tag != null) && (this._gxObjectFilter != null)) { bool flag = false; string str = this.txtName.Text.Trim(); if (this._gxObjectFilter.CanSaveObject(tag, str, ref flag)) { this._gxObject = tag; this._array2.RemoveAll(); this._gxObjects.Clear(); if (this._gxObjectFilter.Name == "GxFilterWorkspaces") { IWorkspaceName name = null; IGxObject unk = null; unk = new GxDatabase() as IGxObject; name = new WorkspaceName() as IWorkspaceName; string path = (tag as IGxFile).Path + @"\" + str; string str3 = System.IO.Path.GetExtension(path).ToLower(); if (str3 == ".mdb") { name.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory"; } else if ((str3 == ".sde") && flag) { name.WorkspaceFactoryProgID = "esriDataSourcesGDB.SdeWorkspaceFactory"; } else { name.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory"; } if (!flag) { if (str3 == ".mdb") { IWorkspaceFactory factory = new AccessWorkspaceFactory() as IWorkspaceFactory; try { factory.Create(System.IO.Path.GetDirectoryName(path), System.IO.Path.GetFileNameWithoutExtension(path), null, 0); } catch (Exception exception) { MessageBox.Show(this, exception.Message); } } else { Directory.CreateDirectory(path); } } name.PathName = path; (unk as IGxDatabase).WorkspaceName = name; this._array2.Add(unk); this._gxObjects.Add(unk); } else { if (((tag is IGxFolder) || (tag is IGxDiskConnection)) || (tag is IGxDatabase)) { this._array2.Add(tag); this._gxObjects.Add(tag); } else { if (!(tag is IGxDataset)) { return; } if ((tag as IGxDataset).Type == esriDatasetType.esriDTFeatureDataset) { this._array2.Add(tag); this._gxObjects.Add(tag); } } this._saveName = this.CheckExtension(str, this._gxObjectFilter); } base.DialogResult = DialogResult.OK; if (selectedItem.Tag != null) { _pStartLocation = (selectedItem.Tag as IGxObject).FullName; } base.Close(); } } } }
public override void OnDblClick() { if (!this.bool_0) { this.idisplayFeedback_0 = null; } else { IGeometry geometry = (this.idisplayFeedback_0 as INewPolygonFeedback).Stop(); this.bool_0 = false; this.idisplayFeedback_0 = null; if (!geometry.IsEmpty) { (geometry as IPolygon).SimplifyPreserveFromTo(); System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; try { geometry.SpatialReference = this._context.FocusMap.SpatialReference; int num = this._subType; if (num != 0) { string str = System.IO.Path.GetTempPath() + "TempPersonGDB"; int num2 = 1; string path = str + ".mdb"; while (File.Exists(path)) { try { File.Delete(path); break; } catch { } num2++; path = str + " (" + num2.ToString() + ").mdb"; } IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactory(); IWorkspaceName workspaceName = workspaceFactory.Create( System.IO.Path.GetDirectoryName(path), System.IO.Path.GetFileNameWithoutExtension(path), null, 0); IMap imap_ = new Map(); Clip.ExtractSpecifyHRegFeatures(workspaceName, this._context.FocusMap, geometry, imap_); new FormPrinterSetup(); CMapPrinter cMapPrinter; cMapPrinter = new CMapPrinter(imap_); cMapPrinter.showPrintUI("打印地图"); } else { frmOpenFile frmOpenFile = new frmOpenFile(); frmOpenFile.Text = "保存位置"; frmOpenFile.RemoveAllFilters(); frmOpenFile.AddFilter(new MyGxFilterWorkspaces(), true); if (frmOpenFile.DoModalSave() == System.Windows.Forms.DialogResult.OK) { IArray items = frmOpenFile.Items; if (items.Count == 0) { return; } System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; try { IWorkspaceName workspaceName = null; IGxObject gxObject = items.get_Element(0) as IGxObject; if (gxObject is IGxDatabase) { workspaceName = (gxObject.InternalObjectName as IWorkspaceName); } else if (gxObject is IGxFolder) { workspaceName = new WorkspaceName() as IWorkspaceName; workspaceName.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory"; workspaceName.PathName = (gxObject.InternalObjectName as IFileName).Path; } if (workspaceName != null) { Clip.ExtractSpecifyHRegFeatures(workspaceName, this._context.FocusMap, geometry); } } catch { } System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.ToString()); } if (this._context.Hook is IApplication) { (this._context.Hook as IApplication).CurrentTool = null; } System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } } }
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e) { IWorkspaceName workspaceNameClass; IGxObject gxDatabase; ListViewItem listViewItem; string[] name; ImageComboBoxItemEx item; if (this.listView1.SelectedItems.Count != 0) { IGxObject tag = this.listView1.SelectedItems[0].Tag as IGxObject; if (tag is IGxObjectContainer) { this.SetListView(tag); this.m_CanDo = false; if (tag.Parent is IGxCatalog) { int num = 0; while (num < this.imageComboBoxEdit1.Properties.Items.Count) { item = this.imageComboBoxEdit1.Properties.Items[num] as ImageComboBoxItemEx; if (item.Tag != tag) { num++; } else { this.imageComboBoxEdit1.SelectedIndex = num; break; } } } else { item = this.imageComboBoxEdit1.Properties.Items[this.imageComboBoxEdit1.SelectedIndex] as ImageComboBoxItemEx; int degree = item.Degree; item = new ImageComboBoxItemEx(tag.Name, tag.FullName, this.GetImageIndex(tag), degree + 1) { Tag = tag }; int selectedIndex = this.imageComboBoxEdit1.SelectedIndex; this.imageComboBoxEdit1.Properties.Items.Insert(selectedIndex + 1, item); this.imageComboBoxEdit1.SelectedIndex = selectedIndex + 1; } this.m_CanDo = true; } else if (tag is IGxNewDatabase) { if (tag.FullName == "添加OLE DB连接") { try { string str = string.Concat(Environment.SystemDirectory.Substring(0, 2), "\\Documents and Settings\\Administrator\\Application Data\\ESRI\\ArcCatalog\\"); string finalFileName = string.Concat(str, "OLE DB Connection.odc"); if (Directory.Exists(str)) { finalFileName = this.GetFinalFileName(finalFileName); IWorkspaceFactory oLEDBWorkspaceFactoryClass = new OLEDBWorkspaceFactory(); workspaceNameClass = oLEDBWorkspaceFactoryClass.Create(str, Path.GetFileName(finalFileName), null, 0); gxDatabase = new GxDatabase(); (gxDatabase as IGxDatabase).WorkspaceName = workspaceNameClass; gxDatabase.Attach(tag.Parent, this.GxCatalog); name = new string[] { gxDatabase.Name, gxDatabase.Category }; listViewItem = new ListViewItem(name, this.GetImageIndex(gxDatabase)) { Tag = gxDatabase }; this.listView1.Items.Add(listViewItem); } } catch (Exception exception) { exception.ToString(); } } else if (tag.FullName == "添加空间数据库连接") { frmCreateGDBConnection _frmCreateGDBConnection = new frmCreateGDBConnection() { TopMost = true }; if (_frmCreateGDBConnection.ShowDialog() == DialogResult.OK) { gxDatabase = new GxDatabase(); workspaceNameClass = new WorkspaceName() as IWorkspaceName; workspaceNameClass.WorkspaceFactoryProgID = "esriDataSourcesGDB.SdeWorkspaceFactory"; workspaceNameClass.PathName = _frmCreateGDBConnection.ConnectionPath; (gxDatabase as IGxDatabase).WorkspaceName = workspaceNameClass; gxDatabase.Attach(tag.Parent, this.GxCatalog); name = new string[] { gxDatabase.Name, gxDatabase.Category }; listViewItem = new ListViewItem(name, this.GetImageIndex(gxDatabase)) { Tag = gxDatabase }; this.listView1.Items.Add(listViewItem); } } } } }
private void button1_Click(object sender, EventArgs e) { string pTargetFile = DataCheckToolAuxiliary.Form1.targetDbName; string pSourceFile = DataCheckToolAuxiliary.Form1.sourceDbName; DialogResult result = MessageBox.Show(this, "确定要合并数据库" + pTargetFile + " 和 " + pSourceFile + " 吗?", "提示", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { //打开目标数据库 IWorkspaceName pWorkspaceName = new WorkspaceName() as IWorkspaceName; pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory"; pWorkspaceName.PathName = pTargetFile; IName pName; pName = pWorkspaceName as IName; IWorkspace workspace = (IWorkspace)pName.Open(); IFeatureWorkspace target_ws = workspace as IFeatureWorkspace; IWorkspaceEdit wse = target_ws as IWorkspaceEdit; //打开源数据 pWorkspaceName.PathName = pSourceFile; pName = pWorkspaceName as IName; IFeatureWorkspace source_ws = pName.Open() as IFeatureWorkspace; IDataset ds = workspace as IDataset; List <String> fcNames = new List <string>(); Form1.GetAllFeatureClassNames(ds, ref fcNames); //遍历地图控件中的每个图层,进行数据合并 foreach (string fcname in fcNames) { //打开目标图层 IFeatureClass target_fc = target_ws.OpenFeatureClass(fcname); IFeatureClass source_fc = source_ws.OpenFeatureClass(fcname); //设置查询过滤关系 IQueryFilter pQuerFileter = new QueryFilter(); pQuerFileter.WhereClause = ""; wse.StartEditing(false); IFeatureCursor target_cur = target_fc.Insert(true); IFeatureBuffer buffer = target_fc.CreateFeatureBuffer(); IFeatureCursor source_cur = source_fc.Search(pQuerFileter, true); IFeature pFeature = source_cur.NextFeature(); while (pFeature != null) { //只有可编辑情况下,才合并数据 if (pFeature.get_Value(source_fc.FindField("Editable")).ToString() == "1") { for (int n = 0; n < source_fc.Fields.FieldCount; n++) { IField source_field = source_fc.Fields.get_Field(n); if (source_field.Name != source_fc.OIDFieldName && source_field.Name != "SHAPE_Area" && source_field.Name != "SHAPE_Length" && source_field.Name != "Editable") { int target_field_index = source_fc.FindField(source_field.Name); if (target_field_index != -1) { object source_value = pFeature.get_Value(source_fc.FindField(source_field.Name)); buffer.set_Value(target_field_index, source_value); } } } target_cur.InsertFeature(buffer); //合并追加一条记录 } pFeature = source_cur.NextFeature(); } target_cur.Flush(); wse.StopEditing(true); System.Runtime.InteropServices.Marshal.ReleaseComObject(source_cur); //释放资源 System.Runtime.InteropServices.Marshal.ReleaseComObject(target_cur); } System.Runtime.InteropServices.Marshal.ReleaseComObject(source_ws); System.Runtime.InteropServices.Marshal.ReleaseComObject(target_ws); MessageBox.Show("数据合并成功!", "提示", MessageBoxButtons.OK); } }
public static void Project(IFeatureClass ifeatureClass_0, ISpatialReference ispatialReference_0, IWorkspace iworkspace_0, string string_0, double double_0) { string str; double num; double num1; double num2; double num3; IEnumFieldError enumFieldError; IFields field; IWorkspace workspace = ((IDataset)ifeatureClass_0).Workspace; IFeatureDataConverter featureDataConverterClass = new FeatureDataConverter(); IWorkspaceName workspaceNameClass = new WorkspaceName() as IWorkspaceName; workspaceNameClass.ConnectionProperties = workspace.ConnectionProperties; workspaceNameClass.WorkspaceFactoryProgID = workspace.WorkspaceFactory.GetClassID().Value.ToString(); IWorkspaceName connectionProperties = new WorkspaceName() as IWorkspaceName; PropertySet propertySetClass = new PropertySet(); connectionProperties.ConnectionProperties = iworkspace_0.ConnectionProperties; connectionProperties.WorkspaceFactoryProgID = iworkspace_0.WorkspaceFactory.GetClassID().Value.ToString(); IDatasetName featureClassNameClass = new FeatureClassName() as IDatasetName; string aliasName = ifeatureClass_0.AliasName; int num4 = aliasName.LastIndexOf("."); if (num4 != -1) { aliasName = aliasName.Substring(num4 + 1); } featureClassNameClass.Name = aliasName; featureClassNameClass.WorkspaceName = workspaceNameClass; IDatasetName datasetName = new FeatureClassName() as IDatasetName; { datasetName.WorkspaceName = connectionProperties; } ; IFieldChecker fieldCheckerClass = new FieldChecker() { ValidateWorkspace = iworkspace_0 }; string[] strArrays = string_0.Split(new char[] { '.' }); string_0 = string.Concat(strArrays[(int)strArrays.Length - 1], "_Project"); fieldCheckerClass.ValidateTableName(string_0, out str); string str1 = str; int num5 = 1; if ( !(iworkspace_0.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace ? false : iworkspace_0.Type != esriWorkspaceType.esriLocalDatabaseWorkspace)) { while (((IWorkspace2)iworkspace_0).NameExists[esriDatasetType.esriDTFeatureClass, str1]) { str1 = string.Concat(str, "_", num5.ToString()); num5++; } } else if (iworkspace_0.Type == esriWorkspaceType.esriFileSystemWorkspace) { while (File.Exists(string.Concat(str1, ".shp"))) { str1 = string.Concat(str, "_", num5.ToString()); num5++; } } datasetName.Name = str1; IFields fieldsClass = new ESRI.ArcGIS.Geodatabase.Fields(); num4 = ifeatureClass_0.Fields.FindField(ifeatureClass_0.ShapeFieldName); IField field1 = ifeatureClass_0.Fields.Field[num4]; IGeometryDef geometryDef = field1.GeometryDef; ISpatialReference spatialReference = geometryDef.SpatialReference; ispatialReference_0.GetDomain(out num, out num1, out num2, out num3); ((IGeometryDefEdit)geometryDef).GridCount_2 = 1; ((IGeometryDefEdit)geometryDef).GridSize_2[0] = double_0; ((IGeometryDefEdit)geometryDef).SpatialReference_2 = ispatialReference_0; ((IFieldEdit)field1).GeometryDef_2 = geometryDef; for (int i = 0; i < ifeatureClass_0.Fields.FieldCount; i++) { if (i != num4) { IField field2 = ifeatureClass_0.Fields.Field[i]; ((IFieldsEdit)fieldsClass).AddField(field2); } else { ((IFieldsEdit)fieldsClass).AddField(field1); } } fieldCheckerClass.Validate(fieldsClass, out enumFieldError, out field); if (SRLibCommonFunc.m_pfrm != null) { SRLibCommonFunc.m_pfrm.FeatureProgress = featureDataConverterClass; } try { featureDataConverterClass.ConvertFeatureClass((IFeatureClassName)featureClassNameClass, null, null, (IFeatureClassName)datasetName, geometryDef, field, "", 1000, 0); } catch (Exception exception) { MessageBox.Show(exception.Message); } }
private void 分割数据ToolStripMenuItem_Click(object sender, EventArgs e) { if (pIsSelect == false) { MessageBox.Show("请先进行地图分割范围选择", "提示"); } else if (pIsSelect == true) { pActiveView = this.axMapControl1.ActiveView; pMap = pActiveView.FocusMap; ////先清除已有选择图形 //pMap.ClearSelection(); //pActiveView.Refresh(); if (sourceDbName == "") { MessageBox.Show("请选择需分割的个人数据库路径"); return; } else if (pBufferDistance == 0) { MessageBox.Show("请设置缓冲区半径!"); return; } //数据分割之前先导出数据框架 string XmlFile = System.Windows.Forms.Application.StartupPath + "\\WS_Schema.xml"; // 配置文件放置在应用程序的可执行文件的路径下。 ExportWS_Schema(sourceDbName, XmlFile); //检查文件是否已经存在 bool isExist = File.Exists(dbPath + dbName); if (isExist == true) { File.Delete(dbPath + dbName); } ImportWS(dbPath, dbName, XmlFile); //******************************************** //IGeometry pGeometry = this.axMapControl1.TrackPolygon(); IGeometry pGeometry = (IGeometry)SelectArea; IGeometry pBufferGeometry; //缓冲区几何图形 axMapControl1.DrawShape(pGeometry, ref m_FillSymbol); //空间查询 ILayer pLayer; IFeatureLayer pFeatureLayer; IFeatureClass pFeatureClass; ISpatialFilter pSpatialFilter = new SpatialFilter(); IFeatureCursor pFeatureCursor; IFeature pFeature; int m; string pFileGDB; //遍历地图控件中的每个图层,进行多边形选择 for (int i = 0; i < axMapControl1.Map.LayerCount; i++) { pLayer = pMap.get_Layer(i); pFeatureLayer = (IFeatureLayer)pLayer; pFeatureClass = pFeatureLayer.FeatureClass; string str = pFeatureClass.AliasName; pSpatialFilter.set_GeometryEx(pGeometry, false); //设置空间过滤关系为包含 pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains; pFeatureCursor = pFeatureClass.Search(pSpatialFilter, false); pFeature = pFeatureCursor.NextFeature(); ////遍历所有符合要求的要素,使用IMap::SelectFeature方法将他们添加到图层的选择要素层中去 while (pFeature != null) { pMap.SelectFeature(pFeatureLayer, pFeature); pFeature = pFeatureCursor.NextFeature(); } pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null); m = this.axMapControl1.Map.SelectionCount; // 选择要素的个数 } DialogResult result = MessageBox.Show(this, "是否按此范围进行数据分割?", "提示", MessageBoxButtons.YesNo); if (result == System.Windows.Forms.DialogResult.Yes) { //pFileGDB = Properties.Settings.Default.targetPersonalGDB;//此处是写死的参数,可以修改 pFileGDB = dbPath + dbName; //缓冲区 pGeometry.SpatialReference = this.axMapControl1.SpatialReference; ITopologicalOperator topologicalOperator = pGeometry as ITopologicalOperator; pBufferGeometry = topologicalOperator.Buffer(pBufferDistance); //打开目标数据库 IWorkspaceName pWorkspaceName = new WorkspaceName() as IWorkspaceName; pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory"; pWorkspaceName.PathName = pFileGDB; IName pName = pWorkspaceName as IName; IFeatureWorkspace target_ws = pName.Open() as IFeatureWorkspace; IWorkspaceEdit wse = target_ws as IWorkspaceEdit; //遍历地图控件中的每个图层,进行数据分割 for (int i = 0; i < axMapControl1.Map.LayerCount; i++) { pLayer = pMap.get_Layer(i); pFeatureLayer = (IFeatureLayer)pLayer; pFeatureClass = pFeatureLayer.FeatureClass; string pFeatureClassName = pFeatureClass.AliasName; //打开目标图层 IFeatureClass target_fc = target_ws.OpenFeatureClass(pFeatureClassName); //*********设置空间过滤关系为包含,选择框内的要素剪切到第二个个人数据库里,标识为可编辑状态****************** pSpatialFilter.set_GeometryEx(pGeometry, false); pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains; wse.StartEditing(false); IFeatureCursor target_cur = target_fc.Insert(true); IFeatureBuffer buffer = target_fc.CreateFeatureBuffer(); pFeatureCursor = pFeatureClass.Update(pSpatialFilter, true); pFeature = pFeatureCursor.NextFeature(); while (pFeature != null) { for (int n = 0; n < pFeatureClass.Fields.FieldCount; n++) { IField source_field = pFeatureClass.Fields.get_Field(n); if (source_field.Name != pFeatureClass.OIDFieldName && source_field.Name != "SHAPE_Area" && source_field.Name != "SHAPE_Length") { int target_field_index = pFeatureClass.FindField(source_field.Name); if (target_field_index != -1) { if (source_field.Name == "Editable") { buffer.set_Value(target_field_index, 1);//选择框内的要素设定为可编辑 } else { object source_value = pFeature.get_Value(pFeatureClass.FindField(source_field.Name)); buffer.set_Value(target_field_index, source_value); } } } } target_cur.InsertFeature(buffer); //新的mdb图层中增加一条记录 pFeatureCursor.DeleteFeature(); //删除原数据库中的要素,保证每一个可编辑要素有并且只存在一个数据库中 pFeature = pFeatureCursor.NextFeature(); } System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor); //释放资源 //***************设置空间过滤关系为相交,缓冲区内的要素复制到第二个个人数据库里,但标识为不可编辑状态**************** pSpatialFilter.set_GeometryEx(pBufferGeometry, false); pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIndexIntersects; pFeatureCursor = pFeatureClass.Search(pSpatialFilter, true); pFeature = pFeatureCursor.NextFeature(); while (pFeature != null) { for (int n = 0; n < pFeatureClass.Fields.FieldCount; n++) { IField source_field = pFeatureClass.Fields.get_Field(n); if (source_field.Name != pFeatureClass.OIDFieldName && source_field.Name != "SHAPE_Area" && source_field.Name != "SHAPE_Length") { int target_field_index = pFeatureClass.FindField(source_field.Name); if (target_field_index != -1) { if (source_field.Name == "Editable") { buffer.set_Value(target_field_index, 0);//缓冲区内的要素设定为不可编辑 } else { object source_value = pFeature.get_Value(pFeatureClass.FindField(source_field.Name)); buffer.set_Value(target_field_index, source_value); } } } } target_cur.InsertFeature(buffer); //新的mdb图层中增加一条记录 pFeature = pFeatureCursor.NextFeature(); } target_cur.Flush(); wse.StopEditing(true); System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor); //释放资源 System.Runtime.InteropServices.Marshal.ReleaseComObject(target_cur); System.Runtime.InteropServices.Marshal.ReleaseComObject(buffer); } System.Runtime.InteropServices.Marshal.ReleaseComObject(target_ws); MessageBox.Show("数据分割成功!", "提示", MessageBoxButtons.OK); } pIsSelect = false; //***************************************** } }
private void btnOK_Click(object sender, EventArgs e) { IName internalObjectName; IFields fields2; IEnumFieldError error; string fileNameWithoutExtension; string str4; string name; IField field; int num; IGeometryDefEdit geometryDef; Exception exception; IFeatureDataset dataset; if (this.txtOutName.Tag == null) { IGxFolder folder = new GxFolder(); (folder as IGxFile).Path = Path.GetDirectoryName(this.txtOutName.Text); this.txtOutName.Tag = folder; } if (this.txtOutName.Tag == null) { return; } IGxObject tag = this.txtOutName.Tag as IGxObject; if (tag is IGxFolder) { IWorkspaceName name2 = new WorkspaceName() as IWorkspaceName; name2.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory"; name2.PathName = (tag.InternalObjectName as IFileName).Path; internalObjectName = name2 as IName; string text = this.txtOutName.Text; if (Path.GetExtension(this.txtOutName.Text) != ".shp") { text = Path.GetFileNameWithoutExtension(this.txtOutName.Text) + ".shp"; } if (File.Exists(text)) { MessageBox.Show("已经存在该shapefile文件,请重新输入文件名"); return; } } else { internalObjectName = tag.InternalObjectName; } IFields inputField = this.m_pFeatureLayer.FeatureClass.Fields; IFieldChecker checker = new FieldChecker(); IFeatureClass class2 = null; if (internalObjectName is IWorkspaceName) { IFeatureWorkspace workspace = internalObjectName.Open() as IFeatureWorkspace; checker.ValidateWorkspace = workspace as IWorkspace; checker.Validate(inputField, out error, out fields2); fileNameWithoutExtension = Path.GetFileNameWithoutExtension(this.txtOutName.Text); checker.ValidateTableName(fileNameWithoutExtension, out str4); fileNameWithoutExtension = str4; ISpatialReference spatialReference = (this.m_pFeatureLayer.FeatureClass as IGeoDataset).SpatialReference; if (this.rdoSRType.SelectedIndex == 0) { spatialReference = this.m_pMap.SpatialReference; } name = ""; for (num = 0; num < fields2.FieldCount; num++) { field = fields2.get_Field(num); if (field.Type == esriFieldType.esriFieldTypeGeometry) { geometryDef = (field as IFieldEdit).GeometryDef as IGeometryDefEdit; geometryDef.SpatialReference_2 = spatialReference; (field as IFieldEdit).GeometryDef_2 = geometryDef; name = field.Name; break; } } try { if ((workspace is IWorkspace2) && (workspace as IWorkspace2).get_NameExists(esriDatasetType.esriDTFeatureClass, fileNameWithoutExtension)) { MessageBox.Show("已经存在该要素类,请重新输入要素类名"); return; } class2 = workspace.CreateFeatureClass(fileNameWithoutExtension, fields2, null, null, esriFeatureType.esriFTSimple, name, ""); } catch (Exception exception1) { exception = exception1; MessageBox.Show("无法创建输出要素类!"); return; } goto Label_0400; } else { dataset = internalObjectName.Open() as IFeatureDataset; IWorkspace workspace2 = dataset.Workspace; checker.ValidateWorkspace = workspace2; checker.Validate(inputField, out error, out fields2); fileNameWithoutExtension = Path.GetFileNameWithoutExtension(this.txtOutName.Text); checker.ValidateTableName(fileNameWithoutExtension, out str4); fileNameWithoutExtension = str4; name = ""; for (num = 0; num < fields2.FieldCount; num++) { field = fields2.get_Field(num); if (field.Type == esriFieldType.esriFieldTypeGeometry) { geometryDef = (field as IFieldEdit).GeometryDef as IGeometryDefEdit; geometryDef.SpatialReference_2 = (dataset as IGeoDataset).SpatialReference; (field as IFieldEdit).GeometryDef_2 = geometryDef; name = field.Name; break; } } } try { class2 = dataset.CreateFeatureClass(fileNameWithoutExtension, fields2, null, null, esriFeatureType.esriFTSimple, name, ""); } catch (Exception exception2) { exception = exception2; MessageBox.Show("无法创建输出要素类!,原因:" + exception.Message); return; } Label_0400: if (this.cboExportData.SelectedIndex == 0) { ExportDataHelper.ExportData(this.m_pFeatureLayer, class2, false); } else if (this.cboExportData.SelectedIndex == 1) { ISpatialFilter queryFilter = new SpatialFilter() { Geometry = (this.m_pMap as IActiveView).Extent }; IFeatureCursor cursor = this.m_pFeatureLayer.Search(queryFilter, false); ExportDataHelper.ExportData(cursor, class2); ComReleaser.ReleaseCOMObject(cursor); } else { ExportDataHelper.ExportData(this.m_pFeatureLayer, class2, true); } base.DialogResult = DialogResult.OK; }
public static void Project(IFeatureClass ifeatureClass_0, ISpatialReference ispatialReference_0, IFeatureDatasetName ifeatureDatasetName_0, string string_0, double double_0) { IWorkspace workspace = ((IDataset)ifeatureClass_0).Workspace; IFeatureDataConverter featureDataConverter = new FeatureDataConverter(); IWorkspaceName workspaceName = new WorkspaceName() as IWorkspaceName; workspaceName.ConnectionProperties = workspace.ConnectionProperties; workspaceName.WorkspaceFactoryProgID = workspace.WorkspaceFactory.GetClassID().Value.ToString(); IWorkspaceName workspaceName2 = (ifeatureDatasetName_0 as IDatasetName).WorkspaceName; IDatasetName datasetName = new FeatureClassName() as IDatasetName; string text = ifeatureClass_0.AliasName; int num = text.LastIndexOf("."); if (num != -1) { text = text.Substring(num + 1); } datasetName.Name = text; datasetName.WorkspaceName = workspaceName; IWorkspace2 workspace2 = (workspaceName2 as IName).Open() as IWorkspace2; IDatasetName datasetName2 = new FeatureClassName() as IDatasetName; datasetName2.WorkspaceName = workspaceName2; (datasetName2 as IFeatureClassName).FeatureDatasetName = (ifeatureDatasetName_0 as IDatasetName); IFieldChecker fieldChecker = new FieldChecker(); fieldChecker.ValidateWorkspace = (workspace2 as IWorkspace); string[] array = string_0.Split(new char[] { '.' }); string_0 = array[array.Length - 1] + "_Project"; string text2; fieldChecker.ValidateTableName(string_0, out text2); string text3 = text2; int num2 = 1; if (workspaceName2.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace || workspaceName2.Type == esriWorkspaceType.esriLocalDatabaseWorkspace) { while (workspace2.get_NameExists(esriDatasetType.esriDTFeatureClass, text3)) { text3 = text2 + "_" + num2.ToString(); num2++; } } else if (workspaceName2.Type == esriWorkspaceType.esriFileSystemWorkspace) { while (System.IO.File.Exists(text3 + ".shp")) { text3 = text2 + "_" + num2.ToString(); num2++; } } datasetName2.Name = text3; IFields fields = new ESRI.ArcGIS.Geodatabase.Fields() as IFields; num = ifeatureClass_0.Fields.FindField(ifeatureClass_0.ShapeFieldName); IField field = ifeatureClass_0.Fields.get_Field(num); IGeometryDef geometryDef = field.GeometryDef; ISpatialReference arg_1D9_0 = geometryDef.SpatialReference; double num3; double num4; double num5; double num6; ispatialReference_0.GetDomain(out num3, out num4, out num5, out num6); ((IGeometryDefEdit)geometryDef).GridCount_2 = 1; ((IGeometryDefEdit)geometryDef).set_GridSize(0, double_0); ((IGeometryDefEdit)geometryDef).SpatialReference_2 = ispatialReference_0; ((IFieldEdit)field).GeometryDef_2 = geometryDef; for (int i = 0; i < ifeatureClass_0.Fields.FieldCount; i++) { if (i == num) { ((IFieldsEdit)fields).AddField(field); } else { IField field2 = ifeatureClass_0.Fields.get_Field(i); ((IFieldsEdit)fields).AddField(field2); } } IEnumFieldError enumFieldError; IFields outputFields; fieldChecker.Validate(fields, out enumFieldError, out outputFields); if (SRLibCommonFunc.m_pfrm != null) { SRLibCommonFunc.m_pfrm.FeatureProgress = featureDataConverter; } try { featureDataConverter.ConvertFeatureClass((IFeatureClassName)datasetName, null, ifeatureDatasetName_0, (IFeatureClassName)datasetName2, geometryDef, outputFields, "", 1000, 0); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }