private void btnOpen_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile(); file.AddFilter(new MyGxFilterTablesAndFeatureClasses(), true); file.AllowMultiSelect = false; this.btnSelectInputFeatures.Enabled = false; if (file.DoModalOpen() == DialogResult.OK) { this.igxDataset_0 = null; if (file.Items.Count != 0) { IGxDataset dataset = file.Items.get_Element(0) as IGxDataset; if (dataset != null) { this.igxDataset_0 = dataset; this.textEdit1.Text = (this.igxDataset_0 as IGxObject).Name; this.btnSelectInputFeatures.Enabled = true; } else { this.igxDataset_0 = null; this.textEdit1.Text = ""; } } } }
private void btnSelectInputFeatures_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile { Text = "选择要素" }; file.RemoveAllFilters(); file.AddFilter(new MyGxFilterDatasets(), true); if (file.DoModalOpen() == DialogResult.OK) { IArray items = file.Items; if (items.Count == 0) { return; } IGxObject obj2 = items.get_Element(0) as IGxObject; this.txtInputFeatureClass.Text = obj2.FullName; this.txtInputFeatureClass.Tag = obj2; } if (this.txtInputFeatureClass.Text.Length > 0) { this.btnAdd.Enabled = true; } }
private void btnOpen_Click(object sender, EventArgs e) { switch (ExportType) { case EnumExportType.FeatureClass: { frmOpenFile frm = new frmOpenFile(); frm.AllowMultiSelect = false; frm.AddFilter(new MyGxFilterWorkspaces(), false); frm.AddFilter(new MyGxFilterDatasets(), true); frm.Text = @"选择输出位置"; if (frm.DoModalOpen() == DialogResult.OK) { IGxObject gxObject = frm.Items.get_Element(0) as IGxObject; if (gxObject is IGxDatabase) { IGxDatabase gxDatabase = gxObject as IGxDatabase; _dataset = null; _workspace = gxDatabase.Workspace; _saveType = EnumSaveType.Workspace; } else if (gxObject is IGxDataset) { IGxDataset gxDataset = gxObject as IGxDataset; _dataset = gxDataset.Dataset; _workspace = _dataset.Workspace; _saveType = EnumSaveType.Dataset; } } } break; case EnumExportType.Shapefile: { FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.ShowNewFolderButton = true; if (dialog.ShowDialog() == DialogResult.OK) { this.txtPath.Text = dialog.SelectedPath; Type factoryType = Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory"); IWorkspaceFactory shapefileWorkspaceFactory = Activator.CreateInstance(factoryType) as IWorkspaceFactory; if (shapefileWorkspaceFactory == null) { return; } _dataset = null; _workspace = shapefileWorkspaceFactory.OpenFromFile(dialog.SelectedPath, 0); _saveType = EnumSaveType.Workspace; } } break; } }
private void btnSelectGDB_Click(object sender, EventArgs e) { frmOpenFile _frmOpenFile = new frmOpenFile(); _frmOpenFile.AddFilter(new MyGxFilterEnteripesGeoDatabases(), true); if (_frmOpenFile.DoModalOpen() == System.Windows.Forms.DialogResult.OK) { this.textBox1.Tag = _frmOpenFile.SelectedItems[0]; this.textBox1.Text = (_frmOpenFile.SelectedItems[0] as IGxObject).FullName; } }
private void btnSelectIn_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile { AllowMultiSelect = false, Text = "选择要素" }; file.RemoveAllFilters(); file.AddFilter(new MyGxFilterDatasets(), true); if (file.DoModalOpen() == DialogResult.OK) { IArray items = file.Items; if (items.Count != 0) { this.igxDataset_0 = items.get_Element(0) as IGxDataset; this.idataset_0 = this.igxDataset_0.Dataset; this.txtInputFeat.Text = (this.igxDataset_0 as IGxObject).FullName; this.iworkspace_0 = this.idataset_0.Workspace; string tableName = this.idataset_0.Name + "_Project1"; IFieldChecker checker = new FieldCheckerClass { InputWorkspace = this.iworkspace_0 }; checker.ValidateTableName(tableName, out this.string_0); this.txtOutFeat.Text = this.iworkspace_0.PathName + @"\" + this.string_0; if ((this.iworkspace_0.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace) || (this.iworkspace_0.Type == esriWorkspaceType.esriLocalDatabaseWorkspace)) { if (((IWorkspace2)this.iworkspace_0).get_NameExists(esriDatasetType.esriDTFeatureClass, this.string_0)) { this.bool_0 = true; } else { this.bool_0 = false; } } else if (this.iworkspace_0.Type == esriWorkspaceType.esriFileSystemWorkspace) { if (File.Exists(this.txtOutFeat.Text + ".shp")) { this.bool_0 = true; } else { this.bool_0 = false; } } } } }
private void btnImportFC_Click(object sender, EventArgs e) { frmOpenFile frm = new frmOpenFile(); frm.AddFilter(new MyGxFilterFeatureClasses(), true); if (frm.DoModalOpen() != DialogResult.OK) { return; } IGxDataset gxObject = frm.SelectedItems[0] as IGxDataset; if (gxObject == null) { return; } DialogResult result = MessageBox.Show("导入字段时是否清空已有字段?", "询问", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result == DialogResult.Cancel) { return; } if (result == DialogResult.Yes) { _fieldTable.Rows.Clear(); } IFeatureClass pClass = gxObject.Dataset as IFeatureClass; for (int i = 0; i < pClass.Fields.FieldCount; i++) { IField pField = pClass.Fields.Field[i]; if (pField.Type == esriFieldType.esriFieldTypeGeometry || pField.Type == esriFieldType.esriFieldTypeOID) { continue; } string pFldName = pField.Name; if (_fieldTable.Select("FieldName='" + pFldName + "'").Length > 0) { continue; } DataRow pRow = _fieldTable.NewRow(); pRow["FieldName"] = pField.Name; pRow["AliasName"] = pField.AliasName; pRow["AllowNull"] = pField.IsNullable; pRow["FieldType"] = FieldHelper.ConvertToSimpleString(pField.Type); //pRow["IsKey"] = pField.DefaultValue==null ? "": pField.DefaultValue; pRow["FieldLength"] = pField.Length; pRow["Precision"] = pField.Precision; _fieldTable.Rows.Add(pRow); } }
private void btnSelectInputFeatures_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile { Text = "选择表" }; file.AddFilter(new MyGxFilterTables(), true); if (file.DoModalOpen() == DialogResult.OK) { IArray items = file.Items; if (items.Count != 0) { IGxObject obj2 = items.get_Element(0) as IGxObject; ITable dataset = (obj2 as IGxDataset).Dataset as ITable; this.txtTable.Tag = dataset; if (dataset != null) { this.txtTable.Text = obj2.FullName; string[] strArray = obj2.Name.Split(new char[] { '.' }); string str = strArray[strArray.Length - 1]; this.txtDomainName.Text = str; IFields fields = dataset.Fields; for (int i = 0; i < fields.FieldCount; i++) { IField field = fields.get_Field(i); if ((((field.Type != esriFieldType.esriFieldTypeBlob) && (field.Type != esriFieldType.esriFieldTypeGeometry)) && (field.Type != esriFieldType.esriFieldTypeRaster)) && (field.Type != esriFieldType.esriFieldTypeOID)) { this.cdoCodeField.Properties.Items.Add(field.AliasName); if (field.Type == esriFieldType.esriFieldTypeString) { this.cboNameField.Properties.Items.Add(field.AliasName); } } } if (this.cdoCodeField.Properties.Items.Count > 0) { this.cdoCodeField.SelectedIndex = 0; } if (this.cboNameField.Properties.Items.Count > 0) { this.cboNameField.SelectedIndex = 0; } } } } }
private void btnImportStruct_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile(); file.AddFilter(new MyGxFilterTablesAndFeatureClasses(), true); file.AllowMultiSelect = false; if ((file.DoModalOpen() == DialogResult.OK) && (file.Items.Count != 0)) { IGxDataset dataset = file.Items.get_Element(0) as IGxDataset; if (dataset != null) { ITable table = dataset.Dataset as ITable; if (table != null) { int num; IField field; for (num = this.ifields_0.FieldCount - 1; num > 1; num--) { field = this.ifields_0.get_Field(num); if ((field.Type != esriFieldType.esriFieldTypeOID) && (field.Type != esriFieldType.esriFieldTypeGeometry)) { (this.ifields_0 as IFieldsEdit).DeleteField(field); if (this.bool_2) { this.ifieldsEdit_1.AddField(field); } } } IFields fields = table.Fields; for (num = 0; num < fields.FieldCount; num++) { field = fields.get_Field(num); if ((field.Type != esriFieldType.esriFieldTypeOID) && (field.Type != esriFieldType.esriFieldTypeGeometry)) { (this.ifields_0 as IFieldsEdit).AddField(field); if (this.bool_2) { this.ifieldsEdit_0.AddField(field); } } } } this.method_2(this.listView2, this.ifields_0); this.method_5(this.listView2.Items[0].Tag as IField, true); } } }
public static IFeatureClass SelectFeatureClassDialog() { frmOpenFile frm = new frmOpenFile(); frm.AllowMultiSelect = false; frm.AddFilter(new MyGxFilterFeatureClasses(), true); frm.Text = @"选择要素类"; if (frm.DoModalOpen() == DialogResult.OK) { IGxObject gxObject = frm.Items.get_Element(0) as ArcGIS.Catalog.IGxObject; IFeatureClassName className = gxObject.InternalObjectName as IFeatureClassName; return(((IName)className).Open() as IFeatureClass); } return(null); }
public override void OnClick() { frmOpenFile frmOpenFile = new frmOpenFile(); frmOpenFile.Text = "添加数据"; frmOpenFile.AllowMultiSelect = true; frmOpenFile.AddFilter(new MyGxFilterDatasets(), true); if (frmOpenFile.DoModalOpen() == System.Windows.Forms.DialogResult.OK) { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; this.add3DDataHelper_0 = new Add3DDataHelper(this.method_0()); this.ilist_0 = frmOpenFile.SelectedItems; this.add3DDataHelper_0.LoadData(this.ilist_0); System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } }
private void AddConnection() { frmOpenFile frm = new frmOpenFile(); frm.AddFilter(new MyGxFilterGeoDatabases(), true); frm.Text = "选择数据库"; if (frm.DoModalOpen() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; IGxDatabase database = frm.Items.get_Element(0) as IGxDatabase; if (database != null) { ITemplateDatabase findDB = _databases.FirstOrDefault(c => c.DatabaseName == (database as IGxObject).FullName); if (findDB != null) { MessageService.Current.Warn("数据库已经连接,无需再次连接!"); return; } IFeatureWorkspace pWorkspace = Yutai.ArcGIS.Common.Helpers.WorkspaceHelper.GetWorkspace((database as IGxObject).FullName); if (pWorkspace == null) { return; } bool isExists1 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_FEATURECLASS"); // bool isExists2 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_FIELD"); bool isExists3 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_DOMAIN"); bool isExists4 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_DATASET"); ITemplateDatabase templateDatabase = new TemplateDatabase(); templateDatabase.DatabaseName = (database as IGxObject).FullName; templateDatabase.Workspace = pWorkspace; _databases.Add(templateDatabase); LoadDatabases(); //if (isExists4 && isExists1 && isExists3 && isExists2) //{ // this.txtDB.Text = BuildConnectionString((database as IGxObject).FullName); //} //else //{ // MessageService.Current.Warn("该数据库内没有地图制图模板数据!请重新选择!"); //} } Cursor.Current = Cursors.Default; } // LoadDatabases(); }
private void btnOpen_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile(); file.AddFilter(new MyGxFilterTablesAndFeatureClasses(), true); file.AllowMultiSelect = false; if ((file.DoModalOpen() == DialogResult.OK) && (file.Items.Count != 0)) { IGxDataset dataset = file.Items.get_Element(0) as IGxDataset; if (dataset != null) { if ((this.igxDataset_0.Type == esriDatasetType.esriDTFeatureClass) && (dataset.Type == esriDatasetType.esriDTFeatureClass)) { if ((this.igxDataset_0.Dataset as IFeatureClass).ShapeType == (dataset.Dataset as IFeatureClass).ShapeType) { if ( this.method_0(this.igxDataset_0.DatasetName.WorkspaceName, dataset.DatasetName.WorkspaceName) && (this.igxDataset_0.DatasetName.Name == dataset.DatasetName.Name)) { MessageBox.Show("源对象类和目标对象类必须不同!"); } else { this.igxDataset_1 = dataset; this.textEdit1.Text = (this.igxDataset_1 as IGxObject).Name; } } else { MessageBox.Show("装载数据必须和源数据有相同的几何数据类型!"); } } else { this.igxDataset_1 = dataset; this.textEdit1.Text = (this.igxDataset_1 as IGxObject).Name; } } else { this.textEdit1.Text = ""; } } }
private void cmdLayerBrowse_Click(object sender, EventArgs e) { frmOpenFile frmOpenFile = new frmOpenFile(); frmOpenFile.AddFilter(new MyGxFilterPolygonFeatureClasses(), true); frmOpenFile.Text = "选择要素"; if (frmOpenFile.DoModalOpen() == System.Windows.Forms.DialogResult.OK) { IArray items = frmOpenFile.Items; for (int i = 0; i < items.Count; i++) { IGxDataset gxDataset = items.get_Element(i) as IGxDataset; this.cmbBuildingLayer.Items.Add(new ObjectWrap(gxDataset.Dataset)); } this.cmbBuildingLayer.SelectedIndex = this.cmbBuildingLayer.Items.Count - 1; } }
public static IWorkspace SelectWorkspaceDialog() { frmOpenFile frm = new frmOpenFile(); frm.AllowMultiSelect = false; frm.AddFilter(new MyGxFilterWorkspaces(), true); frm.Text = @"选择地理数据库"; if (frm.DoModalOpen() == DialogResult.OK) { IGxObject gxObject = frm.Items.get_Element(0) as ArcGIS.Catalog.IGxObject; if (gxObject is IGxDatabase) { IGxDatabase gxDatabase = gxObject as IGxDatabase; return(gxDatabase.Workspace); } } return(null); }
public static IFeatureClass SelectFeatureClassDialog() { frmOpenFile frm = new frmOpenFile() { Text = @"添加数据", AllowMultiSelect = false }; frm.AddFilter(new MyGxFilterFeatureClasses(), true); if (frm.DoModalOpen() == DialogResult.OK) { IGxObject gxObject = frm.Items.get_Element(0) as IGxObject; IFeatureClassName className = gxObject.InternalObjectName as IFeatureClassName; IFeatureClass featureClass = ((IName)className).Open() as IFeatureClass; return(featureClass); } return(null); }
private void btnSelectInputFeatures_Click(object sender, EventArgs e) { int num; frmOpenFile file = new frmOpenFile { Text = "添加数据" }; file.RemoveAllFilters(); file.AllowMultiSelect = true; if (this.iarray_0.Count != 0) { for (num = 0; num < this.iarray_0.Count; num++) { if (num == 0) { file.AddFilter(this.iarray_0.get_Element(num) as IGxObjectFilter, true); } else { file.AddFilter(this.iarray_0.get_Element(num) as IGxObjectFilter, false); } } } else { file.AddFilter(new MyGxFilterDatasets(), true); } if (file.DoModalOpen() == DialogResult.OK) { IArray items = file.Items; if (items.Count != 0) { for (num = 0; num < items.Count; num++) { IGxObject obj2 = items.get_Element(num) as IGxObject; this.ilist_0.Add(obj2.InternalObjectName); this.listView1.Items.Add(obj2.FullName); } } } }
public override void OnClick() { frmOpenFile _frmOpenFile = new frmOpenFile() { Text = "添加数据", AllowMultiSelect = true }; _frmOpenFile.AddFilter(new MyGxFilterDatasets(), true); if (_frmOpenFile.DoModalOpen() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; this.pHelper = new AddDataHelper(this.GetMap() as IActiveView); this.ilist_0 = _frmOpenFile.SelectedItems; this.pHelper.m_pApp = _context; this.pHelper.LoadData(this.ilist_0); Cursor.Current = Cursors.Default; } }
private void btnOpen_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile(); if (this.int_0 == 0) { file.AddFilter(new MyGxFilterGeoDatabases(), true); } else { file.AddFilter(new MyGxFilterPersonalGeodatabases(), true); } if ((file.DoModalOpen() == DialogResult.OK) && (file.Items.Count > 0)) { IGxObject obj2 = file.Items.get_Element(0) as IGxObject; if (obj2 is IGxDatabase) { if (this.int_0 == 0) { this.iversionedWorkspace_0 = (obj2 as IGxDatabase).Workspace as IVersionedWorkspace; if (this.iversionedWorkspace_0 == null) { MessageBox.Show("请选择企业数据库!"); this.textEdit1.Text = ""; this.btnOK.Enabled = false; } else { this.textEdit1.Text = obj2.FullName; this.btnOK.Enabled = true; } } else { this.textEdit1.Text = obj2.FullName; this.idatabaseCompact_0 = (obj2 as IGxDatabase).Workspace as IDatabaseCompact; this.btnOK.Enabled = this.idatabaseCompact_0 != null; } } } }
public override void OnClick() { frmOpenFile frmOpenFile = new frmOpenFile(); frmOpenFile.Text = "添加数据"; frmOpenFile.AllowMultiSelect = false; frmOpenFile.AddFilter(new MyGxFilterPolylineFeatureClasses(), true); if (frmOpenFile.DoModalOpen() == System.Windows.Forms.DialogResult.OK) { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; IArray items = frmOpenFile.Items; IGxDataset gxDataset = items.get_Element(0) as IGxDataset; IFeatureClass featureClass = gxDataset.Dataset as IFeatureClass; new frmDGXFeatureClassToTin { FeatureClass = featureClass, m_pMap = this._plugin.Scene as IBasicMap }.ShowDialog(); System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } }
private void btnSetDatasources_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile { Text = "设置数据源", AllowMultiSelect = false }; if (this.idataLayer_0 is IFeatureLayer) { file.AddFilter(new MyGxFilterFeatureClasses(), true); } if ((file.DoModalOpen() == DialogResult.OK) && (file.Items.Count == 1)) { IGxObject obj2 = file.Items.get_Element(0) as IGxObject; IName internalObjectName = obj2.InternalObjectName; bool flag = false; if ((this.idataLayer_0.get_DataSourceSupported(internalObjectName) && (this.idataLayer_0 is IFeatureLayer)) && (obj2 is IGxDataset)) { IDataset dataset = (obj2 as IGxDataset).Dataset; if (dataset is IFeatureClass) { try { (this.idataLayer_0 as IFeatureLayer).FeatureClass = dataset as IFeatureClass; flag = true; this.method_0(); } catch { } } } if (!flag) { MessageBox.Show("无法把图层数据源设置为选择的数据!"); } } }
public override void OnClick(object sender, EventArgs args) { if (_command == null) { _command = new ESRI.ArcGIS.Controls.ControlsAddDataCommandClass(); _command.OnCreate(_context.MapControl); } object parentObject = null; if (_view.SelectedLayer != null && _view.SelectedLayer is IGroupLayer) { parentObject = _view.SelectedLayer; } else { parentObject = _context.FocusMap as IActiveView; } frmOpenFile _frmOpenFile = new frmOpenFile() { Text = "添加数据", AllowMultiSelect = true }; _frmOpenFile.AddFilter(new MyGxFilterDatasets(), true); if (_frmOpenFile.DoModalOpen() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; this.pHelper = new AddDataHelper(this.GetMap() as IActiveView); this.ilist_0 = _frmOpenFile.SelectedItems; this.pHelper.m_pApp = _context; if (_view.SelectedLayer != null && _view.SelectedLayer is IGroupLayer) { pHelper.ParentLayer = _view.SelectedLayer as IGroupLayer; } this.pHelper.LoadData(this.ilist_0); Cursor.Current = Cursors.Default; } }
private void btnSelectInputFeatures_Click(object sender, EventArgs e) { frmOpenFile _frmOpenFile = new frmOpenFile() { Text = "添加数据" }; _frmOpenFile.RemoveAllFilters(); _frmOpenFile.AllowMultiSelect = true; _frmOpenFile.AddFilter(new MyGxFilterRasterDatasets(), true); if (_frmOpenFile.DoModalOpen() == System.Windows.Forms.DialogResult.OK) { IArray items = _frmOpenFile.Items; if (items.Count != 0) { for (int i = 0; i < items.Count; i++) { IGxObject element = items.Element[i] as IGxObject; this.m_pInNames.Add(element.InternalObjectName); this.listView1.Items.Add(element.FullName); } } } }
private void btnSelectInputFeatures_Click(object sender, EventArgs e) { int num; frmOpenFile file = new frmOpenFile { Text = "添加数据" }; file.RemoveAllFilters(); file.AllowMultiSelect = true; if (this.iarray_1.Count != 0) { for (num = 0; num < this.iarray_1.Count; num++) { if (num == 0) { file.AddFilter(this.iarray_1.get_Element(num) as IGxObjectFilter, true); } else { file.AddFilter(this.iarray_1.get_Element(num) as IGxObjectFilter, false); } } } else { file.AddFilter(new MyGxFilterFeatureClasses(), true); } if (file.DoModalOpen() == DialogResult.OK) { IArray items = file.Items; if (items.Count != 0) { for (num = 0; num < items.Count; num++) { IGxObject obj2 = items.get_Element(num) as IGxObject; if (obj2 is IGxDataset) { if ((obj2 as IGxDataset).Type == esriDatasetType.esriDTCadDrawing) { IDatasetName unk = this.method_3((obj2 as IGxDataset).DatasetName, "Point"); this.iarray_0.Add(unk); this.listView1.Items.Add(obj2.FullName + ":" + unk.Name); unk = this.method_3((obj2 as IGxDataset).DatasetName, "Polyline"); this.iarray_0.Add(unk); this.listView1.Items.Add(obj2.FullName + ":" + unk.Name); unk = this.method_3((obj2 as IGxDataset).DatasetName, "Polygon"); this.iarray_0.Add(unk); this.listView1.Items.Add(obj2.FullName + ":" + unk.Name); unk = this.method_3((obj2 as IGxDataset).DatasetName, "Annotation"); this.iarray_0.Add(unk); this.listView1.Items.Add(obj2.FullName + ":" + unk.Name); } else { this.iarray_0.Add(obj2.InternalObjectName); this.listView1.Items.Add(obj2.FullName); } } } } } }
private void btnSelectInputFeatures_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile { Text = "添加数据" }; file.RemoveAllFilters(); file.AllowMultiSelect = true; file.AddFilter(new MyGxFilterDatasets(), true); if (file.DoModalOpen() == DialogResult.OK) { IArray items = file.Items; if (items.Count != 0) { for (int i = 0; i < items.Count; i++) { IGxObject obj2 = items.get_Element(i) as IGxObject; if (obj2 is IGxDataset) { IGxDataset dataset = obj2 as IGxDataset; if ((this.igxDataset_0.Type == esriDatasetType.esriDTFeatureClass) && (dataset.Type == esriDatasetType.esriDTFeatureClass)) { if ((this.igxDataset_0.Dataset as IFeatureClass).ShapeType == (dataset.Dataset as IFeatureClass).ShapeType) { if ( this.method_0(this.igxDataset_0.DatasetName.WorkspaceName, dataset.DatasetName.WorkspaceName) && (this.igxDataset_0.DatasetName.Name == dataset.DatasetName.Name)) { MessageBox.Show("源对象类和目标对象类必须不同!" + obj2.FullName + "不能导入"); } else { this.ilist_0.Add(obj2.InternalObjectName); this.listView1.Items.Add(obj2.FullName); } } else { MessageBox.Show("装载数据必须和源数据有相同的几何数据类型!" + obj2.FullName + "不能导入"); } } else if ((this.igxDataset_0.Type == esriDatasetType.esriDTTable) && (dataset.Type == esriDatasetType.esriDTTable)) { this.ilist_0.Add(obj2.InternalObjectName); this.listView1.Items.Add(obj2.FullName); } else if ((this.igxDataset_0.Type == esriDatasetType.esriDTFeatureClass) && (dataset.Type == esriDatasetType.esriDTTable)) { this.ilist_0.Add(obj2.InternalObjectName); this.listView1.Items.Add(obj2.FullName); } else { MessageBox.Show("装载数据必须和源数据有相同的几何数据类型!" + obj2.FullName + "不能导入"); } } } } } }
private void method_3(object object_0) { frmOpenFile file = new frmOpenFile { Text = "添加数据", AllowMultiSelect = true }; file.AddFilter(new MyGxFilterDatasets(), true); if (file.DoModalOpen() == DialogResult.OK) { IFeatureClass featureClass; IFeatureLayer layer; System.Windows.Forms.Cursor.Current = Cursors.WaitCursor; IArray array = new ArrayClass(); IArray items = file.Items; int index = 0; while (true) { if (index >= items.Count) { break; } IGxDataset dataset = items.get_Element(index) as IGxDataset; if (dataset != null) { IDataset dataset2 = dataset.Dataset; if (dataset2 != null) { if (dataset2.Type == esriDatasetType.esriDTFeatureClass) { featureClass = (IFeatureClass)dataset2; if (featureClass.FeatureType == esriFeatureType.esriFTAnnotation) { layer = new FDOGraphicsLayerClass { FeatureClass = featureClass, Name = featureClass.AliasName }; } else { layer = new FeatureLayerClass { FeatureClass = featureClass, Name = featureClass.AliasName }; } array.Add(layer); } else { IFDOGraphicsLayerFactory factory; if (dataset2.Type == esriDatasetType.esriDTCadDrawing) { IEnumGxObject children = (dataset as IGxObjectContainer).Children; children.Reset(); for (IGxDataset dataset3 = children.Next() as IGxDataset; dataset3 != null; dataset3 = children.Next() as IGxDataset) { featureClass = dataset3.Dataset as IFeatureClass; if (featureClass.FeatureType == esriFeatureType.esriFTAnnotation) { factory = new FDOGraphicsLayerFactoryClass(); layer = (IFeatureLayer) factory.OpenGraphicsLayer( (IFeatureWorkspace)featureClass.FeatureDataset.Workspace, featureClass.FeatureDataset, featureClass.AliasName); } else { layer = new FeatureLayerClass { FeatureClass = featureClass, Name = featureClass.AliasName }; } array.Add(layer); } } else if (dataset2.Type == esriDatasetType.esriDTFeatureDataset) { IFeatureClassContainer container = (IFeatureClassContainer)dataset2; index = 0; while (index < (container.ClassCount - 1)) { featureClass = container.get_Class(index); if (featureClass.FeatureType == esriFeatureType.esriFTAnnotation) { factory = new FDOGraphicsLayerFactoryClass(); layer = (IFeatureLayer) factory.OpenGraphicsLayer( (IFeatureWorkspace)featureClass.FeatureDataset.Workspace, featureClass.FeatureDataset, featureClass.AliasName); } else { layer = new FeatureLayerClass { FeatureClass = featureClass, Name = featureClass.AliasName }; } array.Add(layer); index++; } } else if (dataset2.Type == esriDatasetType.esriDTTin) { ITinLayer unk = new TinLayerClass { Dataset = (ITin)dataset2, Name = dataset2.Name }; array.Add(unk); } else if ((dataset2.Type == esriDatasetType.esriDTRasterDataset) || (dataset2.Type == esriDatasetType.esriDTRasterBand)) { bool flag = true; if (!((IRasterPyramid)dataset2).Present) { if (ApplicationRef.PyramidPromptType == PyramidPromptType.AlwaysBuildNoPrompt) { ((IRasterPyramid)dataset2).Create(); } else if (ApplicationRef.PyramidPromptType == PyramidPromptType.AlwaysPrompt) { switch (BuildPyramidSet.Show()) { case DialogResult.Yes: ((IRasterPyramid)dataset2).Create(); break; case DialogResult.Cancel: flag = false; break; } } } if (flag) { RasterLayerClass class3 = new RasterLayerClass { Cached = true }; IRasterLayer layer3 = class3; layer3.CreateFromDataset((IRasterDataset)dataset2); layer3.Name = dataset2.Name; array.Add(layer3); } } else if (dataset2.Type == esriDatasetType.esriDTTable) { try { IRasterCatalogTable pCatalog = new RasterCatalogTableClass { Table = (ITable)dataset2 }; pCatalog.Update(); IRasterCatalogLayer layer4 = new RasterCatalogLayerClass(); layer4.Create(pCatalog); layer4.Name = dataset2.BrowseName; array.Add(layer4); } catch { } } } } } index++; } int count = array.Count; ILayer layer5 = null; for (index = count - 1; index >= 0; index--) { layer5 = array.get_Element(index) as ILayer; if (layer5 is IRasterCatalogLayer) { if (object_0 is IMap) { (object_0 as IMap).AddLayer(layer5); } else if (object_0 is IGroupLayer) { (object_0 as IGroupLayer).Add(layer5); } array.Remove(index); count--; } } for (index = count - 1; index >= 0; index--) { layer5 = array.get_Element(index) as ILayer; if (layer5 is IRasterLayer) { if (object_0 is IMap) { (object_0 as IMap).AddLayer(layer5); } else if (object_0 is IGroupLayer) { (object_0 as IGroupLayer).Add(layer5); } array.Remove(index); count--; } } for (index = count - 1; index >= 0; index--) { layer5 = array.get_Element(index) as ILayer; if (layer5 is ITinLayer) { if (object_0 is IMap) { (object_0 as IMap).AddLayer(layer5); } else if (object_0 is IGroupLayer) { (object_0 as IGroupLayer).Add(layer5); } array.Remove(index); count--; } } for (index = count - 1; index >= 0; index--) { layer5 = array.get_Element(index) as ILayer; if (layer5 is IFeatureLayer) { layer = layer5 as IFeatureLayer; featureClass = layer.FeatureClass; if ((featureClass.ShapeType == esriGeometryType.esriGeometryPolygon) || (featureClass.ShapeType == esriGeometryType.esriGeometryEnvelope)) { if (object_0 is IMap) { (object_0 as IMap).AddLayer(layer5); } else if (object_0 is IGroupLayer) { (object_0 as IGroupLayer).Add(layer5); } array.Remove(index); count--; } } } for (index = count - 1; index >= 0; index--) { layer5 = array.get_Element(index) as ILayer; if (layer5 is IFeatureLayer) { layer = layer5 as IFeatureLayer; featureClass = layer.FeatureClass; if (((((featureClass.ShapeType == esriGeometryType.esriGeometryLine) || (featureClass.ShapeType == esriGeometryType.esriGeometryBezier3Curve)) || ((featureClass.ShapeType == esriGeometryType.esriGeometryCircularArc) || (featureClass.ShapeType == esriGeometryType.esriGeometryEllipticArc))) || (featureClass.ShapeType == esriGeometryType.esriGeometryPath)) || (featureClass.ShapeType == esriGeometryType.esriGeometryPolyline)) { if (object_0 is IMap) { (object_0 as IMap).AddLayer(layer5); } else if (object_0 is IGroupLayer) { (object_0 as IGroupLayer).Add(layer5); } array.Remove(index); count--; } } } for (index = count - 1; index >= 0; index--) { layer5 = array.get_Element(index) as ILayer; if (layer5 is IFeatureLayer) { layer = layer5 as IFeatureLayer; featureClass = layer.FeatureClass; if ((featureClass.ShapeType == esriGeometryType.esriGeometryMultipoint) || (featureClass.ShapeType == esriGeometryType.esriGeometryPoint)) { if (object_0 is IMap) { (object_0 as IMap).AddLayer(layer5); } else if (object_0 is IGroupLayer) { (object_0 as IGroupLayer).Add(layer5); } array.Remove(index); count--; } } } for (index = count - 1; index >= 0; index--) { layer5 = array.get_Element(index) as ILayer; if (object_0 is IMap) { (object_0 as IMap).AddLayer(layer5); } else if (object_0 is IGroupLayer) { (object_0 as IGroupLayer).Add(layer5); } array.Remove(index); } System.Windows.Forms.Cursor.Current = Cursors.Default; } }
private void btnSelectInputFeatures_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile { Text = "添加数据" }; file.RemoveAllFilters(); file.AllowMultiSelect = true; file.AddFilter(new MyGxFilterDatasets(), true); if (file.DoModalOpen() == DialogResult.OK) { IArray items = file.Items; if (items.Count != 0) { for (int i = 0; i < items.Count; i++) { IGxObject obj2 = items.get_Element(i) as IGxObject; if (obj2 is IGxDataset) { IDataset dataset = (obj2 as IGxDataset).Dataset; if (this.ispatialReference_0 == null) { this.ispatialReference_0 = (dataset as IGeoDataset).SpatialReference; } else { ISpatialReference spatialReference = (dataset as IGeoDataset).SpatialReference; if ( !(!(spatialReference is IUnknownCoordinateSystem) || (this.ispatialReference_0 is IUnknownCoordinateSystem))) { MessageBox.Show("空间参考不一致," + dataset.Name + "不能添加"); continue; } if ( !(!(spatialReference is IProjectedCoordinateSystem) || (this.ispatialReference_0 is IProjectedCoordinateSystem))) { MessageBox.Show("空间参考不一致," + dataset.Name + "不能添加"); continue; } if ( !(!(spatialReference is IGeographicCoordinateSystem) || (this.ispatialReference_0 is IGeographicCoordinateSystem))) { MessageBox.Show("空间参考不一致," + dataset.Name + "不能添加"); continue; } if (((spatialReference is IProjectedCoordinateSystem) && (this.ispatialReference_0 is IProjectedCoordinateSystem)) && !(spatialReference as IClone).IsEqual(this.ispatialReference_0 as IClone)) { MessageBox.Show("空间参考不一致," + dataset.Name + "不能添加"); continue; } } this.ilist_0.Add(dataset); this.listView1.Items.Add(obj2.FullName); } } } } }