/// <summary> /// 创建GDB /// </summary> /// <param name="folder"></param> /// <param name="gdbname"></param> /// <returns></returns> public static string CreateGDB(string folder, string gdbname) { if (string.IsNullOrWhiteSpace(folder) || string.IsNullOrWhiteSpace(gdbname)) { throw new Exception("路径不能为空"); } if (System.Text.RegularExpressions.Regex.IsMatch(gdbname, "[/\\, ]")) { throw new Exception("路径不能含有特殊字符"); } if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } IWorkspaceFactory2 wsFctry = new FileGDBWorkspaceFactoryClass(); if (!gdbname.ToLower().EndsWith(".gdb")) { gdbname += ".gdb"; } IWorkspaceName wsName = wsFctry.Create(folder, gdbname, null, 0); string gdbPath = wsName == null ? "" : wsName.PathName; Marshal.ReleaseComObject(wsName); Marshal.ReleaseComObject(wsFctry); return(gdbPath); }
private void Clip_Load(object sender, EventArgs e) { //将featurelayerlist中的元素添加到inputcombox中与maskcombox中 for (int i = 0; i < featurelayerlist.Count; i++) { IDataLayer datalayer = featurelayerlist[i] as IDataLayer; IWorkspaceName w_name = ((IDatasetName)(datalayer.DataSourceName)).WorkspaceName; clip_input.Properties.Items.Add(w_name.PathName + "\\" + featurelayerlist[i].Name + ".shp"); clip_mask.Properties.Items.Add(w_name.PathName + "\\" + featurelayerlist[i].Name + ".shp"); } //将rasterlayerlist中的元素添加到inputcombox中 for (int i = 0; i < rasterlayerlist.Count; i++) { IDataLayer datalayer = rasterlayerlist[i] as IDataLayer; IWorkspaceName w_name = ((IDatasetName)(datalayer.DataSourceName)).WorkspaceName; //地图文档数据w_name.PathName没有斜杠,非地图文档数据w_name.PathName有斜杠,所以路径拼接的时候需要判断 if (w_name.PathName.LastIndexOf("\\") == w_name.PathName.Length - 1) { clip_input.Properties.Items.Add(w_name.PathName + rasterlayerlist[i].Name); clip_mask.Properties.Items.Add(w_name.PathName + rasterlayerlist[i].Name); } else { clip_input.Properties.Items.Add(w_name.PathName + "\\" + rasterlayerlist[i].Name); clip_mask.Properties.Items.Add(w_name.PathName + "\\" + rasterlayerlist[i].Name); } } clip_featureboundarycheck.Enabled = false; //是否根据矢量图形边界裁剪选项不可用 clip_exporttomapbutton.Enabled = false; this.Tag = this.Handle; //将main窗口中mapcontrol返回的坐标通过handle传回clip窗口 }
public ITable DataTableToAETable(DataTable table, string name) { IWorkspaceFactory workspaceFactory = new InMemoryWorkspaceFactoryClass(); IWorkspaceName workspaceName = workspaceFactory.Create("", "MyWorkspace", null, 0); IName names = (IName)workspaceName; IWorkspace inmemWor = (IWorkspace)names.Open(); ITable pTable = DataTableToAETable(table, inmemWor as IFeatureWorkspace, name); if (names != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(names); } if (workspaceFactory != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceFactory); } if (workspaceName != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceName); } if (inmemWor != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(inmemWor); } return(pTable); }
/// <summary> /// 导出要素类到目标工作空间 /// </summary> /// <param name="featureClass"></param> /// <param name="workspace"></param> /// <param name="queryGeometry"></param> /// <param name="spatialRelEnum"></param> /// <param name="whereClause"></param> /// <returns></returns> public static Boolean ExportToWorkspace(IFeatureClass featureClass, IWorkspace workspace, IGeometry queryGeometry = null, esriSpatialRelEnum spatialRelEnum = esriSpatialRelEnum.esriSpatialRelIntersects, string whereClause = "") { IDataset inDataSet = featureClass as IDataset; IFeatureClassName inFCName = inDataSet.FullName as IFeatureClassName; IWorkspace inWorkspace = inDataSet.Workspace; IDataset outDataSet = workspace as IDataset; IWorkspaceName outWorkspaceName = outDataSet.FullName as IWorkspaceName; IFeatureClassName outFCName = new FeatureClassNameClass(); IDatasetName dataSetName = outFCName as IDatasetName; dataSetName.WorkspaceName = outWorkspaceName; dataSetName.Name = inDataSet.Name; IFieldChecker fieldChecker = new FieldCheckerClass { InputWorkspace = inWorkspace, ValidateWorkspace = workspace }; IFields fields = featureClass.Fields; fieldChecker.Validate(fields, out IEnumFieldError enumFieldError, out IFields outFields); IFeatureDataConverter featureDataConverter = null; IField geometryField; try { IGeometryDef geometryDef = null; ISpatialFilter pSF = new SpatialFilterClass(); for (int i = 0; i < outFields.FieldCount; i++) { if (outFields.get_Field(i).Type == esriFieldType.esriFieldTypeGeometry) { geometryField = outFields.get_Field(i); geometryDef = geometryField.GeometryDef; IGeometryDefEdit targetFCGeoDefEdit = (IGeometryDefEdit)geometryDef; targetFCGeoDefEdit.GridCount_2 = 1; targetFCGeoDefEdit.set_GridSize(0, 0); targetFCGeoDefEdit.SpatialReference_2 = geometryField.GeometryDef.SpatialReference; pSF.Geometry = queryGeometry; pSF.GeometryField = featureClass.ShapeFieldName; pSF.SpatialRel = spatialRelEnum; pSF.WhereClause = whereClause; break; } } featureDataConverter = new FeatureDataConverterClass(); featureDataConverter.ConvertFeatureClass(inFCName, pSF, null, outFCName, geometryDef, outFields, " ", 1000, 0); return(true); } catch (Exception ex) { LOG.Error("图层数据导出出错!" + ex.Message); throw ex; } }
public static bool ConvertFeatureDataset(IWorkspace sourceWorkspace, IWorkspace targetWorkspace, string nameOfSourceFeatureDataset, string nameOfTargetFeatureDataset) { try { //create source workspace name IDataset sourceWorkspaceDataset = (IDataset)sourceWorkspace; IWorkspaceName sourceWorkspaceName = (IWorkspaceName)sourceWorkspaceDataset.FullName; //create source dataset name IFeatureDatasetName sourceFeatureDatasetName = new FeatureDatasetNameClass(); IDatasetName sourceDatasetName = (IDatasetName)sourceFeatureDatasetName; sourceDatasetName.WorkspaceName = sourceWorkspaceName; sourceDatasetName.Name = nameOfSourceFeatureDataset; //create target workspace name IDataset targetWorkspaceDataset = (IDataset)targetWorkspace; IWorkspaceName targetWorkspaceName = (IWorkspaceName)targetWorkspaceDataset.FullName; //create target dataset name IFeatureDatasetName targetFeatureDatasetName = new FeatureDatasetNameClass(); IDatasetName targetDatasetName = (IDatasetName)targetFeatureDatasetName; targetDatasetName.WorkspaceName = targetWorkspaceName; targetDatasetName.Name = nameOfTargetFeatureDataset; //Convert feature dataset IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass(); featureDataConverter.ConvertFeatureDataset(sourceFeatureDatasetName, targetFeatureDatasetName, null, "", 1000, 0); return(true); } catch { return(false); } }
private void InitialComboxEx(ComboBoxEx cobox) { IMap pMap = pMapControl.Map; IEnumLayer pEnumLayer = pMap.get_Layers(null, true); pEnumLayer.Reset(); ILayer pLayer = pEnumLayer.Next(); while (pLayer != null) { cobox.Items.Add(pLayer.Name); //获取layer的完整路径 IDataLayer2 pDatalayer = pLayer as IDataLayer2; IDatasetName pDatasetName = pDatalayer.DataSourceName as IDatasetName; IWorkspaceName pWPName = pDatasetName.WorkspaceName; if (!pdic.ContainsKey(pLayer.Name)) { pdic.Add(pLayer.Name, pWPName.PathName + "\\" + pLayer.Name + ".shp"); } if (!pdicLayer.ContainsKey(pLayer.Name)) { pdicLayer.Add(pLayer.Name, pLayer); } pLayer = pEnumLayer.Next(); } }
/// <summary> /// 如果是文件库则需要创建辅助库体的pdb /// 重载构造函数 /// </summary> /// <param name="MTpath">本地辅助库存放路径</param> public GOFuzingTables(string MTpath) { //创建PDB工作空间 IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass(); FileInfo finfo = new FileInfo(MTpath); string outputDBPath = finfo.DirectoryName; string outputDBName = finfo.Name; if (finfo.Exists) { SysCommon.Error.frmInformation frmInfo = new SysCommon.Error.frmInformation("是", "否", "存在同名的辅助库,是否进行替代?"); if (frmInfo.ShowDialog() == DialogResult.OK) { finfo.Delete(); } else { return; } } //outputDBName = outputDBName.Substring(0, outputDBName.Length - 4); IWorkspaceName pWorkspaceName = pWorkspaceFactory.Create(outputDBPath, outputDBName, null, 0); ESRI.ArcGIS.esriSystem.IName pName = (ESRI.ArcGIS.esriSystem.IName)pWorkspaceName; this._Workspace = (IWorkspace)pName.Open(); this._TempleteWorkspace = OpenTempleteWorkSpace(); }
private void ExportDatasetToXML(string fileGdbPath, string sourceFCName, string outputXmlFile) { // Open the source geodatabase and create a name object for it. IWorkspaceName sourceWorkspaceName = getWorkspaceName("esriDataSourcesGDB.FileGDBWorkspaceFactory", fileGdbPath); IFeatureClassName sourceFeatureClassName = getFeatureClassName(sourceWorkspaceName, sourceFCName); IName sourceName = (IName)sourceFeatureClassName; // Create a new names enumerator and add the feature dataset name. IEnumNameEdit enumNameEdit = new NamesEnumeratorClass(); enumNameEdit.Add(sourceName); IEnumName enumName = (IEnumName)enumNameEdit; // Create a GeoDBDataTransfer object and create a name mapping. IGeoDBDataTransfer geoDBDataTransfer = new GeoDBDataTransferClass(); IEnumNameMapping enumNameMapping = null; geoDBDataTransfer.GenerateNameMapping(enumName, sourceWorkspaceName as IName, out enumNameMapping); // Create an exporter and export the dataset with binary geometry, not compressed, // and including metadata. IGdbXmlExport gdbXmlExport = new GdbExporterClass(); gdbXmlExport.ExportDatasets(enumNameMapping, outputXmlFile, true, false, true); }
/// <summary> /// 创建FileGDB和PGDB Workspace /// @remark /// 1.Shp创建Workspace没有意义 /// 2.不支持SDE创建 /// </summary> /// <param name="wsType"></param> /// <param name="strPath"></param> /// <param name="strName"></param> /// <returns></returns> public static IWorkspace CreateWorkspace(enumWorkspaceType wsType, string strPath, string strName) { try { IWorkspaceFactory wsf = null; switch (wsType) { case enumWorkspaceType.SDE: throw new Exception("CreateWorkspace方法被设计为不支持SDE方式创建"); case enumWorkspaceType.FileGDB: wsf = new ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass(); break; case enumWorkspaceType.PGDB: wsf = new AccessWorkspaceFactoryClass(); break; case enumWorkspaceType.File: wsf = new ShapefileWorkspaceFactoryClass(); break; } IWorkspaceName wsName = wsf.Create(strPath, strName, null, 0); return((wsName as IName).Open() as IWorkspace); } catch { return(null); } }
public static void ExtractSpecifyHRegFeatures(IWorkspaceName iworkspaceName_0, IMap imap_0, IGeometry igeometry_0, IMap imap_1) { (new SelectionEnvironment()).CombinationMethod = esriSelectionResultEnum.esriSelectionResultNew; IWorkspace workspace = (iworkspaceName_0 as IName).Open() as IWorkspace; for (int i = imap_0.LayerCount - 1; i >= 0; i--) { ILayer layer = imap_0.Layer[i]; if ((!layer.Visible ? false : layer is IFeatureLayer)) { try { IEnvelope areaOfInterest = layer.AreaOfInterest; ITopologicalOperator topologicalOperator = (ITopologicalOperator)((IClone)igeometry_0).Clone(); topologicalOperator.Simplify(); if (topologicalOperator.IsSimple) { topologicalOperator.Clip(areaOfInterest); } } catch (Exception exception) { } if (!igeometry_0.IsEmpty) { ClipHelper.ExtractSelectFeatureFormFeatureCursor(layer, ClipHelper.searchFeatureFormLayer(layer, igeometry_0), (IFeatureWorkspace)workspace, igeometry_0, imap_1); } } } Marshal.ReleaseComObject(workspace); workspace = null; }
private static void ExtractSpecifyRegFeatures(IWorkspaceName iworkspaceName_0, IMap imap_0, IGeometry igeometry_0) { ISelectionEnvironment selectionEnvironment = new SelectionEnvironment(); selectionEnvironment.CombinationMethod = esriSelectionResultEnum.esriSelectionResultNew; try { imap_0.SelectByShape(igeometry_0, selectionEnvironment, false); } catch (COMException ex) { if (ex.ErrorCode == -2147467259) { System.Windows.Forms.MessageBox.Show("执行查询时产生错误。空间索引不存在", "选择"); } } catch (Exception) { } IWorkspace workspace = (iworkspaceName_0 as IName).Open() as IWorkspace; for (int i = 0; i < imap_0.LayerCount; i++) { ILayer layer = imap_0.get_Layer(i); if (layer is IFeatureLayer) { ClipHelper.ExtractSelectFeatureFormLayer((IFeatureLayer)layer, (IFeatureWorkspace)workspace, igeometry_0); } } }
//-------------------------------------------------------------------------------- public static IWorkspace GetSDEWorkspace() { try { //声明临时路径 string path = @"d:\temp"; // 声明临时.sde文件名称 string sdeName = @"localhost.sde"; string sdePath = path + "\\" + sdeName; // 如果已经存在了,则删除了重新创建 if (File.Exists(sdePath)) { File.Delete(sdePath); } if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory"); IWorkspaceFactory workspaceFactory = new SdeWorkspaceFactoryClass(); // 创建.sde文件 IWorkspaceName workspaceName = workspaceFactory.Create(path, sdeName, ConnectSDE(true), 0); // 使用.sde文件,通过.sde文件获取IWorkspace,之后就可以对数据库中的数据进行操作了 IWorkspace pWorkspace = workspaceFactory.OpenFromFile(sdePath, 0); return(pWorkspace); } catch (Exception ex) { return(null); } }
public static IWorkspace CreateInMemoryWorkspace() { IWorkspaceFactory workspaceFactory = null; IWorkspaceName workspaceName = null; IName name = null; IWorkspace workspace = null; try { // Create an InMemory workspace factory. workspaceFactory = new InMemoryWorkspaceFactory(); // Create an InMemory geodatabase. workspaceName = workspaceFactory.Create("", "MyWorkspace", null, 0); // Cast for IName. name = (IName)workspaceName; //Open a reference to the InMemory workspace through the name object. workspace = (IWorkspace)name.Open(); return(workspace); } catch { return(null); } finally { workspaceFactory = null; workspaceName = null; name = null; } }
/// <summary> /// 根据传入的要素图层删除其对应的属性表 /// </summary> /// <param name="sender"></param> /// <param name="att_flayer">矢量图层</param> public void att_removetable(IFeatureLayer att_flayer) { //获取传入图层的路径 IDataLayer datalayer = att_flayer as IDataLayer; IWorkspaceName w_name = ((IDatasetName)(datalayer.DataSourceName)).WorkspaceName; string indexstring = w_name.PathName + "\\" + att_flayer.Name + "_" + att_flayer.DataSourceType; //根据indexstring删除flayer_list中的图层 for (int i = 0; i < flayer_list.Count; i++) { IDataLayer listdatalayer = flayer_list[i] as IDataLayer; IWorkspaceName listw_name = ((IDatasetName)(datalayer.DataSourceName)).WorkspaceName; if (indexstring == w_name.PathName + "\\" + flayer_list[i].Name + "_" + flayer_list[i].DataSourceType) { flayer_list.RemoveAt(i); } } //删除gridview_list中的表格 for (int i = 0; i < gridview_list.Count; i++) { if (indexstring == gridview_list[i].Tag.ToString()) { gridview_list.RemoveAt(i); } } //关闭标签页 for (int i = 0; i < att_xtraTabControl.TabPages.Count; i++) { if (att_xtraTabControl.TabPages[i].Text == att_flayer.Name) { att_xtraTabControl.TabPages.RemoveAt(i); } } }
private void Form3_Load(object sender, EventArgs e) { //获取图层 IEnumLayer layers = GetFeatureLayers(); layers.Reset(); ILayer layer = null; while ((layer = layers.Next()) != null) { comboBox1.Items.Add(layer.Name); comboBox2.Items.Add(layer.Name); //错误写法 //IFeatureLayer pFeatureLayer = (IFeatureLayer)layer; //IFeatureClass fc = (IFeatureClass)pFeatureLayer.FeatureClass; //IFeatureDataset fds = (IFeatureDataset)fc.FeatureDataset; //IWorkspace ws = (IWorkspace)fds.Workspace; IDataLayer pDLayer = (IDataLayer)layer; IWorkspaceName ws = ((IDatasetName)(pDLayer.DataSourceName)).WorkspaceName; myCol.Add(layer.Name, ws.PathName + @"\" + layer.Name + ".shp"); System.Console.WriteLine(ws.PathName + @"\" + layer.Name + ".shp"); } label3.Text = ""; }
/// <summary> /// 创建内存IFeatureLayer,该方法为创建内存临时图层的便捷方法,创建的图层带有id,和name两个属性字段。 /// </summary> /// <param name="myAxMapControl">AxMapControl扩展对象</param> /// <param name="strIFeatureClassName">IFeatureClass名称</param> /// <param name="myEsriGeometryType">数据类型</param> /// <returns>IFeatureLayer对象</returns> public static IFeatureLayer CreateMemoryFeatureLayer(this AxMapControl myAxMapControl, String strIFeatureClassName, esriGeometryType myEsriGeometryType) { IWorkspaceFactory myIWorkspaceFactory = new InMemoryWorkspaceFactoryClass(); IWorkspaceName myIWorkspaceName = myIWorkspaceFactory.Create("", strIFeatureClassName, null, 0); IName myIName = (IName)myIWorkspaceName; IWorkspace myIWorkspace = (IWorkspace)myIName.Open(); IField myIField = null; IFields myIFields = new FieldsClass(); IFieldsEdit myIFieldsEdit = myIFields as IFieldsEdit; IFieldEdit myIFieldEdit = null; IFeatureClass myIFeatureClass = null; IFeatureLayer myIFeatureLayer = null; try { //主键id myIField = new FieldClass(); myIFieldEdit = myIField as IFieldEdit; myIFieldEdit.Name_2 = "id"; myIFieldEdit.IsNullable_2 = true; myIFieldEdit.Length_2 = 50; myIFieldEdit.Type_2 = esriFieldType.esriFieldTypeString; myIFieldsEdit.AddField(myIField); //名称name myIField = new FieldClass(); myIFieldEdit = myIField as IFieldEdit; myIFieldEdit.Name_2 = "name"; myIFieldEdit.IsNullable_2 = true; myIFieldEdit.Length_2 = 50; myIFieldEdit.Type_2 = esriFieldType.esriFieldTypeString; myIFieldsEdit.AddField(myIField); //IGeometryI字段 IGeometryDef myIGeometryDef = new GeometryDefClass(); IGeometryDefEdit myIGeometryDefEdit = (IGeometryDefEdit)myIGeometryDef; myIGeometryDefEdit.AvgNumPoints_2 = 5; myIGeometryDefEdit.GeometryType_2 = myEsriGeometryType; myIGeometryDefEdit.GridCount_2 = 1; myIGeometryDefEdit.HasM_2 = false; myIGeometryDefEdit.HasZ_2 = false; myIGeometryDefEdit.SpatialReference_2 = myAxMapControl.SpatialReference; myIField = new FieldClass(); myIFieldEdit = myIField as IFieldEdit; myIFieldEdit.Name_2 = "SHAPE"; myIFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry; myIFieldEdit.GeometryDef_2 = myIGeometryDef; myIFieldEdit.IsNullable_2 = true; myIFieldEdit.Required_2 = true; myIFieldsEdit.AddField(myIField); // myIFeatureClass = (myIWorkspace as IFeatureWorkspace).CreateFeatureClass(strIFeatureClassName, myIFields, null, null, esriFeatureType.esriFTSimple, "SHAPE", ""); (myIFeatureClass as IDataset).BrowseName = strIFeatureClassName; myIFeatureLayer = new FeatureLayerClass(); myIFeatureLayer.Name = strIFeatureClassName; myIFeatureLayer.FeatureClass = myIFeatureClass; } catch { } return(myIFeatureLayer); }
public void ExportFeature(IFeatureClass pInFeatureClass, string pPath) { // create a new Access workspace factory IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass(); string parentPath = pPath.Substring(0, pPath.LastIndexOf('\\')); string fileName = pPath.Substring(pPath.LastIndexOf('\\') + 1, pPath.Length - pPath.LastIndexOf('\\') - 1); IWorkspaceName pWorkspaceName = pWorkspaceFactory.Create(parentPath, fileName, null, 0); // Cast for IName IName name = (IName)pWorkspaceName; //Open a reference to the access workspace through the name object IWorkspace pOutWorkspace = (IWorkspace)name.Open(); IDataset pInDataset = pInFeatureClass as IDataset; IFeatureClassName pInFCName = pInDataset.FullName as IFeatureClassName; IWorkspace pInWorkspace = pInDataset.Workspace; IDataset pOutDataset = pOutWorkspace as IDataset; IWorkspaceName pOutWorkspaceName = pOutDataset.FullName as IWorkspaceName; IFeatureClassName pOutFCName = new FeatureClassNameClass(); IDatasetName pDatasetName = pOutFCName as IDatasetName; pDatasetName.WorkspaceName = pOutWorkspaceName; pDatasetName.Name = pInFeatureClass.AliasName; IFieldChecker pFieldChecker = new FieldCheckerClass(); pFieldChecker.InputWorkspace = pInWorkspace; pFieldChecker.ValidateWorkspace = pOutWorkspace; IFields pFields = pInFeatureClass.Fields; IFields pOutFields; IEnumFieldError pEnumFieldError; pFieldChecker.Validate(pFields, out pEnumFieldError, out pOutFields); IFeatureDataConverter pFeatureDataConverter = new FeatureDataConverterClass(); pFeatureDataConverter.ConvertFeatureClass(pInFCName, null, null, pOutFCName, null, pOutFields, "", 100, 0); }
/// <summary> /// 关闭属性表标签页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void xtraTabControl_CloseButtonClick(object sender, EventArgs e) { XtraTabControl tabControl = sender as XtraTabControl; ClosePageButtonEventArgs arg = e as ClosePageButtonEventArgs; string indexstring = arg.Page.Tooltip; // 删除flayer_list中的图层 for (int i = 0; i < flayer_list.Count; i++) { IDataLayer datalayer = flayer_list[i] as IDataLayer; IWorkspaceName w_name = ((IDatasetName)(datalayer.DataSourceName)).WorkspaceName; if (indexstring == w_name.PathName + "\\" + flayer_list[i].Name + "_" + flayer_list[i].DataSourceType) { flayer_list.RemoveAt(i); } } // 删除gridview_list中的表格 for (int i = 0; i < gridview_list.Count; i++) { if (indexstring == gridview_list[i].Tag.ToString()) { gridview_list.RemoveAt(i); } } tabControl.TabPages.Remove(arg.Page as XtraTabPage); }
public override void OnClick() { IGxObject firstObject = ((IGxSelection)_context.GxSelection).FirstObject; if (firstObject is IGxFile) { string path = (firstObject as IGxFile).Path; path = (path[path.Length - 1] != '\\' ? string.Concat(path, "\\新建文件型数据库") : string.Concat(path, "新建文件型数据库")); string str = string.Concat(path, ".gdb"); int num = 1; while (Directory.Exists(str)) { num++; str = string.Concat(path, " (", num.ToString(), ").gdb"); } IWorkspaceFactory fileGDBWorkspaceFactoryClass = new FileGDBWorkspaceFactory(); try { IWorkspaceName workspaceName = fileGDBWorkspaceFactoryClass.Create(Path.GetDirectoryName(str), Path.GetFileNameWithoutExtension(str), null, 0); IGxObject gxDatabase = new GxDatabase(); (gxDatabase as IGxDatabase).WorkspaceName = workspaceName; IGxCatalog catalog = GxCatalogCommon.GetCatalog(firstObject); gxDatabase.Attach(firstObject, catalog); catalog.ObjectAdded(gxDatabase); } catch (Exception exception) { MessageBox.Show(exception.Message); } } }
public void TransferMapDataWithinExtents_Test(string subDirectory, string mapDocumentFilename, string dataframeName, string outputShapefileDirectory) { string temp = System.IO.Path.Combine(_dataDirectory, subDirectory); string mapDoc = System.IO.Path.Combine(temp, mapDocumentFilename); IMapDocument mapDocument = new MapDocumentClass(); mapDocument.Open(mapDoc, null); IMap map = GeodatabaseUtil.GetMap(mapDocument, dataframeName); List <IFeatureLayer> layers = GeodatabaseUtil.GetFeatureLayers(map); IDataset dataset = (IDataset)layers[0].FeatureClass; IGeoDataset geoDataset = (IGeoDataset)layers[0].FeatureClass; string destination = System.IO.Path.Combine(temp, outputShapefileDirectory); if (Directory.Exists(destination)) { Directory.Delete(destination, true); } Directory.CreateDirectory(destination); IWorkspace outWorkspace = GeodatabaseUtil.GetShapefileWorkspace(destination); IFeatureWorkspace outFeatureWorkspace = (IFeatureWorkspace)outWorkspace; IWorkspaceName outWorkspaceName = GeodatabaseUtil.GetWorkspaceName(outWorkspace); IFeatureClassName outFeatureclassName = GeodatabaseUtil.GetFeatureClassName(outWorkspaceName, dataset.Name); //ESRI.ArcGIS.ADF.Web.Geometry.Envelope envelope = new ESRI.ArcGIS.ADF.Web.Geometry.Envelope(227884.141, 4167884.377, 602406.528, 4470244.455); ESRI.ArcGIS.ADF.Web.Geometry.Envelope envelope = new ESRI.ArcGIS.ADF.Web.Geometry.Envelope(445092.693, 4360557.744, 541068.565, 4418287.592); Dictionary <int, KeyValuePair <string, IEnumInvalidObject> > invalidObjects = GeodatabaseUtil.TransferMapDataWithinExtents(map, outFeatureWorkspace, null, envelope, geoDataset.SpatialReference); }
/// <summary> /// 给指定的WorkspaceName生成GP字符串 /// </summary> /// <param name="wsNameTarget"></param> /// <returns></returns> public static string GetGpString(IWorkspaceName wsNameTarget) { if (wsNameTarget == null) { return(null); } if (wsNameTarget.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace) { try { string strTempPath = System.IO.Path.GetPathRoot(System.Environment.SystemDirectory); // System.IO.Path.Combine(System.IO.Path.GetPathRoot(Environment.SystemDirectory), "SDETemp"); string strTempName = string.Format("Temp_{0}", wsNameTarget.GetHashCode()); string strGpString = System.IO.Path.Combine(strTempPath, strTempName + ".SDE"); IPropertySet propertySet = wsNameTarget.ConnectionProperties; IWorkspaceFactory wsfSDE = new SdeWorkspaceFactoryClass(); if (System.IO.File.Exists(strGpString)) { System.IO.File.Delete(strGpString); } wsfSDE.Create(strTempPath, strTempName, propertySet, 0); return(strGpString); } catch { return(null); } } else { return(wsNameTarget.PathName); } }
// Create the file geodatabase. public static void CreateFileGeodatabase() { string strFgdPath = @"C:\temp\"; //string strFgdName = @"AddressCrossCheck"; string strFgdName = fileGeodatabaseName; IWorkspaceName workspaceName = null; // Instantiate a file geodatabase workspace factory and create a new file geodatabase. // The Create method returns a workspace name object. IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass(); Console.WriteLine("Creating File Geodatabase..."); // check if file geodatabase exists, before creating it if (!(workspaceFactory.IsWorkspace(strFgdPath + strFgdName + ".gdb"))) { workspaceName = workspaceFactory.Create(strFgdPath, strFgdName, null, 0); } else { IFileNames arcFileNames = new FileNames(); arcFileNames.Add(strFgdPath + strFgdName + ".gdb"); workspaceName = workspaceFactory.GetWorkspaceName(strFgdPath, arcFileNames); } // Cast the workspace name object to the IName interface and open the workspace. var name = (IName)workspaceName; workspaceFGDB = (IWorkspace)name.Open(); // Load the data. ImportDataToFGDB(); }
/// <summary> /// Gets the connection string. /// </summary> /// <param name="layer">The layer.</param> /// <returns></returns> private string GetConnectionString(ILayer layer) { try { string connectionstring = string.Empty; IDataLayer dataLayer = (IDataLayer)layer; IDatasetName datasetName = (IDatasetName)dataLayer.DataSourceName; IWorkspaceName workspaceName = (IWorkspaceName)datasetName.WorkspaceName; IPropertySet propertySet = workspaceName.ConnectionProperties; Dictionary <string, string> properties = Umbriel.ArcGIS.Layer.LayerHelper.BuildDictionary(propertySet); StringBuilder sb = new StringBuilder(); foreach (KeyValuePair <string, string> property in properties) { sb.Append(property.Key); sb.Append("="); sb.Append(property.Value); sb.Append(";"); } connectionstring = sb.ToString(); return(connectionstring); } catch (Exception ex) { Trace.WriteLine(ex.StackTrace); return("ERROR: Cannot Access Connection Information"); } }
/// <summary> /// Saves as shpfile. /// </summary> /// <param name="inputFeatureClass">The input feature class.</param> /// <param name="pInDataset">The p in dataset.</param> /// <param name="fileName">Name of the file.</param> /// <param name="pOutWorkspace">The p out workspace.</param> private void SaveAsShpfile(IFeatureClass inputFeatureClass, IDataset pInDataset, string fileName, IWorkspace pOutWorkspace) { IFeatureClassName inputDatasetName = pInDataset.FullName as IFeatureClassName; IWorkspace workspace = pInDataset.Workspace; IDataset dataset = pOutWorkspace as IDataset; IWorkspaceName workspaceName = dataset.FullName as IWorkspaceName; IFeatureClassName featureClassName = new FeatureClassNameClass(); IDatasetName datasetName = featureClassName as IDatasetName; datasetName.WorkspaceName = workspaceName; datasetName.Name = fileName; IFieldChecker fieldChecker = new FieldCheckerClass(); fieldChecker.InputWorkspace = workspace; fieldChecker.ValidateWorkspace = pOutWorkspace; IFields fields = inputFeatureClass.Fields; IEnumFieldError enumFieldError; IFields outputFields; fieldChecker.Validate(fields, out enumFieldError, out outputFields); IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass(); featureDataConverter.ConvertFeatureClass(inputDatasetName, null, null, featureClassName, null, outputFields, "", 100, 0); XtraMessageBox.Show(AppMessage.MSG0029, AppMessage.MSG0000, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Asterisk); }
//通过intersect关系进行裁切 public void ClipByExtent(int groupNm, int extNum) { IGeometry extent = GetClipExtent(extNum); string findName = "grp" + groupNm.ToString() + "ext0"; IGroupLayer grpLy = avlbLayers.Find(item => item.Name == findName); ICompositeLayer comLy = grpLy as ICompositeLayer; IGroupLayer newGroupLayer = new GroupLayerClass(); newGroupLayer.Name = "grp" + groupNm.ToString() + "ext" + extNum.ToString(); for (int i = 0; i < comLy.Count; i++) { IFeatureLayer feaLy = comLy.get_Layer(i) as IFeatureLayer; IFeatureClass clipFC = feaLy.FeatureClass; IFields flds = clipFC.Fields; ISpatialFilter spatialFilter = new SpatialFilterClass(); spatialFilter.Geometry = extent; spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; IFeatureCursor cursor = clipFC.Search(spatialFilter, false); IWorkspaceFactory workspaceFactory = new InMemoryWorkspaceFactoryClass(); IWorkspaceName workspaceName = workspaceFactory.Create(null, "MyWorkspace", null, 0); IName name = (IName)workspaceName; IWorkspace workspace = (IWorkspace)name.Open(); IFeatureWorkspace inmemFeaWksp = workspace as IFeatureWorkspace; if (clipFC.ShapeType == esriGeometryType.esriGeometryPoint) { IFeatureClass inmemPTFC = CreateWithoutDescription("inmemPTFC_" + groupNumber.ToString(), null, inmemFeaWksp, clipFC.ShapeType, flds); InsertFeaturesBoun(inmemPTFC, cursor, extent); IFeatureLayer inmemPTFCLayer = new FeatureLayerClass(); inmemPTFCLayer.FeatureClass = inmemPTFC; newGroupLayer.Add(inmemPTFCLayer); } else if (clipFC.ShapeType == esriGeometryType.esriGeometryPolyline) { IFeatureClass inmemLNFC = CreateWithoutDescription("inmemLNFC" + groupNumber.ToString(), null, inmemFeaWksp, clipFC.ShapeType, flds); InsertFeaturesBoun(inmemLNFC, cursor, extent); IFeatureLayer inmemLNFCLayer = new FeatureLayerClass(); inmemLNFCLayer.FeatureClass = inmemLNFC; newGroupLayer.Add(inmemLNFCLayer); } else if (clipFC.ShapeType == esriGeometryType.esriGeometryPolygon) { IFeatureClass inmemPLGFC = CreateWithoutDescription("inmemPLGFC" + groupNumber.ToString(), null, inmemFeaWksp, clipFC.ShapeType, flds); InsertFeaturesBoun(inmemPLGFC, cursor, extent); IFeatureLayer inmemPLGFCLayer = new FeatureLayerClass(); inmemPLGFCLayer.FeatureClass = inmemPLGFC; newGroupLayer.Add(inmemPLGFCLayer); } } avlbLayers.Add(newGroupLayer); }
private void ExportFeature(IFeatureClass pInFeatureClass, string pPath) { //创建一个输出shp文件的工作空间 IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass(); string parentPath = pPath.Substring(0, pPath.LastIndexOf("\\")); string fileName = pPath.Substring(pPath.LastIndexOf("\\") + 1, pPath.Length - pPath.LastIndexOf("\\") - 1); IWorkspaceName pWorkspaceName = pWorkspaceFactory.Create(parentPath, fileName, null, 0); //创建一个要素类 IName name = (IName)pWorkspaceName; IWorkspace pOutWorkspace = (IWorkspace)name.Open(); IDataset pInDataset = pInFeatureClass as IDataset; IFeatureClassName pInFCName = pInDataset.FullName as IFeatureClassName; IWorkspace pInWorkspace = pInDataset.Workspace; IDataset pOutDataset = pOutWorkspace as IDataset; IWorkspaceName pOutWorkspaceName = pOutDataset.FullName as IWorkspaceName; IFeatureClassName pOutFCName = new FeatureClassNameClass(); IDatasetName pDatasetName = pOutFCName as IDatasetName; pDatasetName.WorkspaceName = pOutWorkspaceName; pDatasetName.Name = pInFeatureClass.AliasName; IFieldChecker pFieldChecker = new FieldCheckerClass(); pFieldChecker.InputWorkspace = pInWorkspace; pFieldChecker.ValidateWorkspace = pOutWorkspace; IFields pFields = pInFeatureClass.Fields; IFields pOutFields; IEnumFieldError pEnumFieldError; pFieldChecker.Validate(pFields, out pEnumFieldError, out pOutFields); IFeatureDataConverter pFeatureDataConverter = new FeatureDataConverterClass(); pFeatureDataConverter.ConvertFeatureClass(pInFCName, null, null, pOutFCName, null, pOutFields, "", 100, 0); }
/// <summary> /// 复制要素集(ConvertFeatureDataset) /// </summary> /// <param name="sourceWorkspace"></param> /// <param name="targetWorkspace"></param> /// <param name="nameOfSourceFeatureDataset"></param> /// <param name="nameOfTargetFeatureDataset"></param> public void IFeatureDataConverter_ConvertFeatureDataset(IWorkspace sourceWorkspace, IWorkspace targetWorkspace, string nameOfSourceFeatureDataset, string nameOfTargetFeatureDataset) { //create source workspace name IDataset sourceWorkspaceDataset = (IDataset)sourceWorkspace; IWorkspaceName sourceWorkspaceName = (IWorkspaceName)sourceWorkspaceDataset.FullName; //create source dataset name IFeatureDatasetName sourceFeatureDatasetName = new FeatureDatasetNameClass(); IDatasetName sourceDatasetName = (IDatasetName)sourceFeatureDatasetName; sourceDatasetName.WorkspaceName = sourceWorkspaceName; sourceDatasetName.Name = nameOfSourceFeatureDataset; //create target workspace name IDataset targetWorkspaceDataset = (IDataset)targetWorkspace; IWorkspaceName targetWorkspaceName = (IWorkspaceName)targetWorkspaceDataset.FullName; //create target dataset name IFeatureDatasetName targetFeatureDatasetName = new FeatureDatasetNameClass(); IDatasetName targetDatasetName = (IDatasetName)targetFeatureDatasetName; targetDatasetName.WorkspaceName = targetWorkspaceName; targetDatasetName.Name = nameOfTargetFeatureDataset; //Convert feature dataset IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass(); featureDataConverter.ConvertFeatureDataset(sourceFeatureDatasetName, targetFeatureDatasetName, null, "", 1000, 0); //Console.WriteLine("Conversion Complete"); }
private void btnImpSymbol_Click(object sender, EventArgs e) { try { SaveFileDialog fbd = new SaveFileDialog(); fbd.Title = "Save file"; fbd.InitialDirectory = System.IO.Path.GetDirectoryName(XMLPath); if (fbd.ShowDialog() == DialogResult.OK) { if (System.IO.Directory.Exists(fbd.FileName + ".shp") == true) { MessageBox.Show("shp已存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass(); IWorkspaceName workspaceName = workspaceFactory.Create(System.IO.Path.GetDirectoryName(fbd.FileName), System.IO.Path.GetFileName(fbd.FileName), null, 0); gdbPath = fbd.FileName + ".gdb"; textBoxX2.Text = fbd.FileName + ".gdb"; } } catch (Exception ex) { MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } }
private bool method_9(IWorkspaceName iworkspaceName_0, bool bool_2) { string pathName = iworkspaceName_0.PathName; string str2 = System.IO.Path.GetExtension(pathName).ToLower(); string str3 = this.string_0 + System.IO.Path.GetFileNameWithoutExtension(pathName); if (pathName.ToLower() == str3.ToLower()) { MessageBox.Show("无法复制 " + System.IO.Path.GetFileName(pathName) + " 源文件和目标文件相同!"); return(false); } if (File.Exists(str3 + str2)) { int num = 1; str3 = str3 + "复件"; while (File.Exists(str3 + str2)) { str3 = str3 + num.ToString(); num++; } } if (bool_2) { File.Move(pathName, str3 + str2); } else { File.Copy(pathName, str3 + str2); } this.method_0(pathName, str2, true); return(true); }
// create a file geodatabase in user-specified location #region "Create FileGeodatabase" public static IWorkspace CreateFileGdbWorkspace(string strFgdPath, string strFgdName) { IWorkspaceName workspaceName = null; // Instantiate a file geodatabase workspace factory and create a new file geodatabase. // The Create method returns a workspace name object. IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass() as IWorkspaceFactory; // check if file geodatabase exists, before creating it if (!(workspaceFactory.IsWorkspace(strFgdPath + strFgdName))) { workspaceName = workspaceFactory.Create(strFgdPath, strFgdName, null, 0); } else { IFileNames arcFileNames = new FileNames(); arcFileNames.Add(strFgdPath + strFgdName); workspaceName = workspaceFactory.GetWorkspaceName(strFgdPath, arcFileNames); } // Cast the workspace name object to the IName interface and open the workspace. IName name = (IName)workspaceName; IWorkspace workspace = (IWorkspace)name.Open(); return(workspace); }
public void Load(IStream pstm) { StreamHelper helper = new StreamHelper(pstm); // Restore the Postgres schema name. m_name = helper.readString(); // Restore the WorkspaceName. m_wksName = new PostGisWorkspaceName(); ((IPersistStream)m_wksName).Load(pstm); }
/// <summary> /// 指定WorkspaceName,FeatureDataset名 和 FeatureClass名生成Gp字符串 /// </summary> /// <param name="wsNameTarget"></param> /// <param name="featureDatasetName">可以为空</param> /// <param name="featureClassName">可以为空</param> /// <returns></returns> public static string GetGpString(IWorkspaceName wsNameTarget, string featureDatasetName, string featureClassName) { string strGpString = GetGpString(wsNameTarget); if (strGpString == null) return null; if (!string.IsNullOrEmpty(featureDatasetName)) { strGpString = string.Format("{0}\\{1}", strGpString, featureDatasetName); } if (!string.IsNullOrWhiteSpace(featureClassName)) { strGpString = string.Format("{0}\\{1}", strGpString, featureClassName); } return strGpString; }
/// <summary> /// 给指定的WorkspaceName生成GP字符串 /// </summary> /// <param name="wsNameTarget"></param> /// <returns></returns> public static string GetGpString(IWorkspaceName wsNameTarget) { if (wsNameTarget == null) return null; if (wsNameTarget.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace) { try { string strTempPath = System.IO.Path.GetPathRoot(System.Environment.SystemDirectory); // System.IO.Path.Combine(System.IO.Path.GetPathRoot(Environment.SystemDirectory), "SDETemp"); string strTempName = string.Format("Temp_{0}", wsNameTarget.GetHashCode()); string strGpString = System.IO.Path.Combine(strTempPath, strTempName + ".SDE"); IPropertySet propertySet = wsNameTarget.ConnectionProperties; IWorkspaceFactory wsfSDE = new SdeWorkspaceFactoryClass(); if (System.IO.File.Exists(strGpString)) { System.IO.File.Delete(strGpString); } wsfSDE.Create(strTempPath, strTempName, propertySet, 0); return strGpString; } catch { return null; } } else { return wsNameTarget.PathName; } }
IWorkspace ISdeConnectionInfo.CreateSdeWorkspace() { if (_sdeUser != null) { try { //MessageBox.Show(string.Format("line 90 SdeConnection:sde service:{0}", _sdeUser.Sde_service)); UtilitiesBox.StartService(_sdeUser.Sde_service, 5000); //UtilitiesBox.StartService("MSSQLSERVER", 3000); WorkspaceManagement wspm = new WorkspaceManagement(); //_workspace = wspm.CreateWorkspaceSDE(_sdeUser.ServerSde, _sdeUser.Instance, _sdeUser.Db, _sdeUser.Version, _sdeUser.UserName, _sdeUser.Pass); //_environment = String.Format("Database Connections/Connection to {0}.sde", _sdeUser.ServerSde); string path=TnSystemTempPath.ConnectionFilePath; try { if (System.IO.File.Exists("c:/tn/temp/tn.sde")) { System.IO.File.Delete("c:/tn/temp/tn.sde"); } } catch { } _workspaceName = wspm.CreateConnectionFile(_sdeUser.Server, _sdeUser.Instance, _sdeUser.UserName, _sdeUser.Pass, _sdeUser.Db, _sdeUser.Version, "c:/tn/temp/","tn.sde"); _environment = "c:/tn/temp/tn.sde"; _workspace = (IWorkspace)((IName)_workspaceName).Open(); //MessageBox.Show("line 100 SdeConnection, path=" + _workspaceName.PathName); return _workspace; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } return _workspace; } return null; }
private static string ExportWorkspaceXml(IWorkspaceName workspaceName) { // Exclude FileSystemWorkspaces switch (workspaceName.Type) { case esriWorkspaceType.esriLocalDatabaseWorkspace: case esriWorkspaceType.esriRemoteDatabaseWorkspace: break; case esriWorkspaceType.esriFileSystemWorkspace: default: MessageBox.Show( Resources.TEXT_DROPPED_OBJECT_NOT_GEODATABASE, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); return null; } // Get Workspace IName name = (IName)workspaceName; IWorkspace workspace = (IWorkspace)name.Open(); // Create Temporary File string path = System.IO.Path.GetTempPath(); string file = string.Format("{0}.{1}", Guid.NewGuid().ToString("N").ToUpper(), "xml"); string outfile = System.IO.Path.Combine(path, file); // IGdbXmlExport gdbXmlExport = new GdbExporterClass(); try { gdbXmlExport.ExportWorkspaceSchema(workspace, outfile, false, true); } catch (COMException ex) { // Handle Exception ExceptionDialog.HandleException(ex); // Display Informative Error Message switch (ex.ErrorCode) { case -2147220967: // 0x80040219 // Invalid network weight association. // Connection to ESRI OLE DB provider is invalid. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_1A + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_1B, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; case -2147220735: // 0x80040301 // The dataset was not found. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_2, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; case -2147220655: // 0x80040351 // The table was not found MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_3, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; case -2147220473: // 0x80040407 // The feature class' default subtype code cannot be retrieved or is invalid. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_4, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; case -2147216558: // 0x80041352 // Unable to instantiate object class extension COM component. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_5, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; case -2147216100: // 0x8004151C // You have insufficient permissions to access one or more datasets. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_6, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; case -2147216086: // 0x8004152A // Specified attribute column doesn't exist. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_7, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; default: // Display a general error message. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_8A + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_8B, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); break; } // Exit Method return null; } catch (Exception ex) { // Handle Exception ExceptionDialog.HandleException(ex); // Display a general error message. MessageBox.Show( Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_9A + Environment.NewLine + Resources.TEXT_GEODATABASE_SCHEMA_EXPORT_FAILED_9B, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); // Exit Method return null; } // Clear Geodatabase Exporter gdbXmlExport = null; // Return pathname to Xml File return outfile; }
public bool Move(IWorkspaceName WorkspaceName, string destinationFolder) { return false; }
IWorkspace ISdeConnectionInfo.CreateSdeWorkspace(ISdeUserInfo sdeUserInfo) { try { UtilitiesBox.StartService(sdeUserInfo.Sde_service, 3000); //UtilitiesBox.StartService("MSSQLSERVER", 3000); WorkspaceManagement wspm = new WorkspaceManagement(); _workspace = wspm.CreateWorkspaceSDE(sdeUserInfo.ServerSde, sdeUserInfo.Instance, sdeUserInfo.Db, sdeUserInfo.Version, sdeUserInfo.UserName, sdeUserInfo.Pass); _environment = String.Format("Database Connections/Connection to {0}.sde", sdeUserInfo.ServerSde); _workspaceName = wspm.CreateConnectionFile(sdeUserInfo.Server, sdeUserInfo.Instance, sdeUserInfo.UserName, sdeUserInfo.Pass, sdeUserInfo.Db, sdeUserInfo.Version,TnSystemTempPath.ConnectionFileFullPath); //MessageBox.Show("line 44 SdeConnection, path=" + _workspaceName.PathName); return _workspace; //IWorkspace wsp = wspm.CreateWorkspaceSDE("froxtal-pc", "5152", "sde", "sde.DEFAULT", "sde", "arcsde"); //if (wsp != null) //{ // TnConnectionInfo.CallMe.SetSDEWorkspace(wsp); // _connectionOk = true; //} //else //{ // _connectionOk = false; //} } catch (Exception ex) { MessageBox.Show(ex.ToString());} return _workspace; }
public bool Copy(IWorkspaceName WorkspaceName, string destinationFolder, out IWorkspaceName workspaceNameCopy) { workspaceNameCopy = null; return false; }