// Explore the File GeoDatabase specified in fgdbPath, print information about its contents to the CSV file 'outfile' private static void exploreFGDB(string fgdbPath, string outfile) { IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(typeof(FileGDBWorkspaceFactoryClass)); IFeatureWorkspace ifw; try { ifw = (IFeatureWorkspace)workspaceFactory.OpenFromFile(fgdbPath, 0); }catch (COMException) { return; } if (ifw == null) { return; } IWorkspace fw = workspaceFactory.OpenFromFile(fgdbPath, 0); IEnumDataset datasets = fw.Datasets[esriDatasetType.esriDTAny]; processIEnumDataset(outfile, ifw, datasets, 0, "", fgdbPath); }
private void ComboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBoxEdit1.Text == "") { return; } else { // //此处为测试代码,需要替换为加载工作空间,打开要素类的代码 // targetFeatureName = comboBoxEdit1.Text; pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile("E:\\测试数据", 0); pFeatureClass1 = pFeatureWorkspace.OpenFeatureClass(targetFeatureName); //得到标准要素类和原要素类的属性字段列表 List <string> s1 = AttTableOperate.get_FieldsString(pFeatureClass1); int index; for (int i = 0; i < s1.Count; i++) { if (s1[i].ToUpper() == "FID" || s1[i].ToUpper() == "SHAPE") { continue; } else { index = dataGridView1.Rows.Add(); } dataGridView1.Rows[index].Cells[0].Value = s1[i]; } } }
private void populateDictionary() { //IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspaceFactory.OpenFromFile(@"C:\PFWGISBeta\PFWGIS.gdb", 0); IEnumDataset fcEnum = workspaceFactory.OpenFromFile(gdbPath, 0).Datasets[esriDatasetType.esriDTFeatureClass]; IDataset fcTemp; while ((fcTemp = fcEnum.Next()) != null) { nameFeatureClass.Add(fcTemp.BrowseName); } setFcList(); }
public static ILayer OpenFile(string workPath, string fileName) { IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(workPath, 0); IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace; IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(fileName); IFeatureLayer pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.FeatureClass = pFeatureClass; pFeatureLayer.Name = pFeatureClass.AliasName; ILayer pLayer = pFeatureLayer as ILayer; return(pLayer); }
public static ILayer OpenRasterFile(string fullFilePath) { String path = System.IO.Path.GetDirectoryName(fullFilePath); //路径 String _name = System.IO.Path.GetFileName(fullFilePath); //文件名 IWorkspace myWorkspace = rWorkspaceFactory.OpenFromFile(path, 0); IRasterWorkspace rasterWorkspace = myWorkspace as IRasterWorkspace; IRasterDataset rasterDataset = new RasterDatasetClass(); IRasterLayer rasterLayer = new RasterLayerClass(); rasterDataset = rasterWorkspace.OpenRasterDataset(_name); rasterLayer.CreateFromDataset(rasterDataset); return(rasterLayer); }
/// <summary> /// 初始化CADtoShape类(进行转换操作时) /// </summary> /// <param name="_CADPath">"*.dwg"文件的路径</param> public CADtoShape(string _CADPath, string savePath, string _TypeTag) { CADPath = _CADPath; //建立存储点线面的文件夹 int index = CADPath.LastIndexOf("\\"); string name = CADPath.Substring(index + 1); string path = CADPath.Substring(0, index); pFeaWorkspace = pWorkspaceFactory.OpenFromFile(path, 0) as IFeatureWorkspace; SavePath = savePath;//导出要素的路径 TypeTag = _TypeTag; IFeatureDataset pFeaDataset = pFeaWorkspace.OpenFeatureDataset(name); pFeaClassContainer = pFeaDataset as IFeatureClassContainer; }
/// <summary> /// 根据文件名和后缀,直接得到IFeatureWorkspace对象 /// </summary> /// <param name="filename">文件路径</param> /// <param name="extention">后缀</param> /// <returns></returns> public IFeatureWorkspace getFeatureWorkspaceFromFile(string filename, string extention) { IWorkspaceFactory workspaceFactory = getWorkspaceFactory(extention); IFeatureWorkspace featureWorkspace = null; if (extention.ToUpper() == "SHP") { featureWorkspace = workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(filename), 0) as IFeatureWorkspace; } else { featureWorkspace = workspaceFactory.OpenFromFile(filename, 0) as IFeatureWorkspace; } return(featureWorkspace); }
private void openFile_Click(object sender, EventArgs e) { DialogResult res = openFileDlg.ShowDialog(this); if (res == DialogResult.OK) { try { zigFile.Text = openFileDlg.FileName; // Open workspace wksf = new PostGisWorkspaceFactory(); fwks = (IFeatureWorkspace)wksf.OpenFromFile(zigFile.Text, 0); // Open workspace IWorkspace ws = fwks as IWorkspace; // Show workspace PostGIS layer IEnumDatasetName edsn = ws.get_DatasetNames(esriDatasetType.esriDTFeatureClass); IDatasetName dsn; // Load PostGIS layer names clbLayers.Items.Clear(); while ((dsn = edsn.Next()) != null) { clbLayers.Items.Add(dsn.Name); } } catch (COMException COMex) { MessageBox.Show("Error " + COMex.ErrorCode.ToString() + ": " + COMex.Message); } catch (System.Exception ex) { MessageBox.Show("Error: " + ex.Message); } } }
//窗体加载时遍历工作空间,初始化输入要素类下拉框的列表 private void FrmProjTrans_Load(object sender, EventArgs e) { //初始化选择要素集 //此处为测试工作空间 pWorkspaceFactory = new ShapefileWorkspaceFactory(); pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(OpenShpPath, 0) as IFeatureWorkspace; IWorkspace pWorkspace = pFeatureWorkspace as IWorkspace; List <IFeatureClass> featureClassList = new List <IFeatureClass>(); List <string> FeatureNameList = new List <string>(); IEnumDataset pEnumDs = pWorkspace.get_Datasets(esriDatasetType.esriDTFeatureClass); IDataset pDS; while ((pDS = pEnumDs.Next()) != null) { FeatureNameList.Add(pDS.Name); featureClassList.Add(pFeatureWorkspace.OpenFeatureClass(pDS.Name)); } for (int i = 0; i < featureClassList.Count; i++) { comBxInputFeaClass.Items.Add(FeatureNameList[i]); } //初始化datagridview控件 dataGridView1.Rows.Add("X方向平移量", "米", "0"); dataGridView1.Rows.Add("Y方向平移量", "米", "0"); dataGridView1.Rows.Add("Z方向平移量", "米", "0"); dataGridView1.Rows.Add("X方向旋转角度", "秒", "0"); dataGridView1.Rows.Add("Y方向旋转角度", "秒", "0"); dataGridView1.Rows.Add("Z方向旋转角度", "秒", "0"); dataGridView1.Rows.Add("比例尺差", "%", "0"); }
private void btnDrive_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { IObjectFactory objFactory = m_application as IObjectFactory; //Use reflection to get ClsID of ShapefileWorkspaceFactory Type shpWkspFactType = typeof(ShapefileWorkspaceFactoryClass); string typeClsID = shpWkspFactType.GUID.ToString("B"); string shapeFile = System.IO.Path.GetFileNameWithoutExtension(txtShapeFilePath.Text); string fileFolder = System.IO.Path.GetDirectoryName(txtShapeFilePath.Text); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)objFactory.Create(typeClsID); IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspaceFactory.OpenFromFile(fileFolder, 0); //(@"C:\data\test", 0); //Create the layer IFeatureLayer featureLayer = (IFeatureLayer)objFactory.Create("esriCarto.FeatureLayer"); featureLayer.FeatureClass = featureWorkspace.OpenFeatureClass(shapeFile); // ("worldgrid"); featureLayer.Name = featureLayer.FeatureClass.AliasName; //Add the layer to document IBasicDocument document = (IBasicDocument)m_application.Document; document.AddLayer(featureLayer); document.UpdateContents(); } catch { } //Or make sure it is a valid shp file first this.Cursor = Cursors.Default; }
public static IFeatureWorkspace GetFeatureWorkspace(string workspacePath) { if (!System.IO.Directory.Exists(workspacePath)) { throw new Exception("Directory does not exist"); } IWorkspaceFactory workspaceFactory = Activator.CreateInstance(Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory")) as IWorkspaceFactory; if (workspaceFactory == null) { throw new Exception("NATestNetworkDataset: workspaceFactory should not be null"); } IFeatureWorkspace featureWorkspace = workspaceFactory.OpenFromFile(workspacePath, 0) as IFeatureWorkspace; if (featureWorkspace == null) { throw new Exception("NATestNetworkDataset: featureWorkspace should not be null"); } // clean up the workspace factory singleton System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceFactory); workspaceFactory = null; GC.Collect(); return(featureWorkspace); }
public IFeatureWorkspace OpenCadWorkspace(string cadPath) { m_workspaceFactory = new CadWorkspaceFactoryClass(); IFeatureWorkspace featureWorkspce = m_workspaceFactory.OpenFromFile(cadPath, 0) as IFeatureWorkspace; return(featureWorkspce); }
public IFeatureWorkspace OpenSHPWorkspace(string shpPath) { m_workspaceFactory = new ShapefileWorkspaceFactoryClass(); IFeatureWorkspace featureWorkspce = m_workspaceFactory.OpenFromFile(shpPath, 0) as IFeatureWorkspace; return(featureWorkspce); }
/// <summary> /// Common tools for manipulating GDB data /// </summary> /// <param name="gdbPath">the GDB file path</param> public CommonTool(string gdbPath) { //Construct FeatureWorkspace workspaceFactory = new FileGDBWorkspaceFactoryClass(); pWorkspace = workspaceFactory.OpenFromFile(gdbPath, 0); pFeaWorkspace = (IFeatureWorkspace)pWorkspace; }
/// <summary> /// open file GDB /// </summary> /// <param name="path">path of file geodatabase</param> /// <returns>objects workspace</returns> internal static IWorkspace FileGdbWorkspaceFromPath(string path) { Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); return(workspaceFactory.OpenFromFile(path, 0)); }
private static IGeoFeatureLayer CreateLayerCopy(IFeatureLayer layer, IObjectFactory objFactory) { var workspacePath = GetWorkspacePathForLayer(layer); Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); string typeFactoryID = factoryType.GUID.ToString("B"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)objFactory.Create(typeFactoryID); IFeatureWorkspace calcWorkspace = (IFeatureWorkspace)workspaceFactory.OpenFromFile(workspacePath, 0); var featureLayer = (IFeatureLayer)objFactory.Create("esriCarto.FeatureLayer"); var featureClassC = calcWorkspace.OpenFeatureClass(layer.FeatureClass.AliasName); featureLayer.FeatureClass = featureClassC; featureLayer.Name = layer.Name; var arcMapLayerDefinition = layer as IFeatureLayerDefinition2; var layerDefinition = featureLayer as IFeatureLayerDefinition2; layerDefinition.DefinitionExpression = arcMapLayerDefinition.DefinitionExpression; IGeoFeatureLayer geoArcMapLayer = layer as IGeoFeatureLayer; IGeoFeatureLayer geoFL = featureLayer as IGeoFeatureLayer; geoFL.Renderer = geoArcMapLayer.Renderer; return(geoFL); }
protected override void OnClick() { string tablePath = Path.Combine(DataPath, @"File-Based\MajorCities.csv"); string tableName = Path.GetFileName(tablePath); Type factoryType = Type.GetTypeFromProgID("esriDataSourcesFile.TextFileWorkspaceFactory"); IWorkspaceFactory workspaceFactory = Activator.CreateInstance(factoryType) as IWorkspaceFactory; IWorkspace workspace = workspaceFactory.OpenFromFile(Path.GetDirectoryName(tablePath), 0); ITable table = ((IFeatureWorkspace) workspace).OpenTable(tableName); ISpatialReference sRef = CreateSpatialReference(esriSRGeoCSType.esriSRGeoCS_WGS1984); IFeatureClass featureClass = CreateXYEventFeature(table, "POINT_X", "POINT_y", sRef); IFeatureLayer featureLayer = new FeatureLayerClass { FeatureClass = featureClass, Name = "CSV XY Event Table" }; IFeatureLayerSourcePageExtension sourcePageExtension = new XYDataSourcePageExtensionClass(); ((ILayerExtensions) featureLayer).AddExtension(sourcePageExtension); ArcMap.Document.FocusMap.AddLayer(featureLayer); ArcMap.Document.UpdateContents(); }
private void button1_Click(object sender, EventArgs e) { try { //create raster dataset from the JPIP service url Type factoryType = Type.GetTypeFromProgID("esriDataSourcesRaster.RasterWorkspaceFactory"); IWorkspaceFactory wsFact = Activator.CreateInstance(factoryType) as IWorkspaceFactory; string tempPath = Path.GetTempPath(); IRasterWorkspace2 ws = wsFact.OpenFromFile(tempPath, 0) as IRasterWorkspace2; IRasterDataset rds = ws.OpenRasterDataset(txtJPIPUrl.Text); //create a layer from the raster dataset IRasterLayer rasterLayer = new RasterLayerClass(); rasterLayer.CreateFromDataset(rds); string layerName = txtLayerName.Text; if (layerName == "") { layerName = txtJPIPUrl.Text.Substring(txtJPIPUrl.Text.LastIndexOf("/") + 1, txtJPIPUrl.Text.Length - txtJPIPUrl.Text.LastIndexOf("/") - 1); } rasterLayer.Name = layerName; //add the JPIP layer to the current data frame of ArcMap ArcMap.Document.FocusMap.AddLayer(rasterLayer); this.Close(); } catch { MessageBox.Show("Couldn't connect to the specified URL, sample url: jpip://myserver:8080/JP2Server/imagealias"); } }
private IWorkspace OpenPlugInWorkspace() { try { string path = GetFileName(); if (string.Empty == path) { return(null); } //update the path textbox txtPath.Text = path; //get the type using the ProgID Type t = Type.GetTypeFromProgID("esriGeoDatabase.SimplePointPluginWorkspaceFactory"); //Use activator in order to create an instance of the workspace factory IWorkspaceFactory workspaceFactory = Activator.CreateInstance(t) as IWorkspaceFactory; //open the workspace return(workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(path), 0)); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); return(null); } }
public static IWorkspace openWorkspace() { Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); return(workspaceFactory.OpenFromFile(@"E:\csantos\src\ArcEasyObjects\data\aeoSample.gdb", 0)); }
public IWorkspace GetGeodatabaseWorkspace(string gdbPath) { Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); return(workspaceFactory.OpenFromFile(gdbPath, 0)); }
// For example, connectionFile = @"C:\myData\Connection to Kona.sde". public IWorkspace OpenArcSDEConnection(String connectionFile) { Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); return(workspaceFactory.OpenFromFile(connectionFile, 0)); }
public static IWorkspace GetWorkspace() { Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); IWorkspace workspace = workspaceFactory.OpenFromFile(@"C:\Users\YourUserName\AppData\Roaming\ESRI\Desktop10.3\ArcCatalog\[email protected]", 0); return(workspace); }
public static IWorkspace OpenGeodatabaseWorkspace(string geodatabase) { const string progId = "esriDataSourcesGDB.FileGDBWorkspaceFactory"; Type factoryType = Type.GetTypeFromProgID(progId); IWorkspaceFactory pWorkspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); return(pWorkspaceFactory.OpenFromFile(geodatabase, 0)); }
public IWorkspace OpenFileGDB(string fgdbpath) { Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); IWorkspace fgdbWorkspace = workspaceFactory.OpenFromFile(fgdbpath, 0); return(fgdbWorkspace); }
protected override void OnClick() { string tablePath = Path.Combine(DataPath, @"Geodatabase\ManhattanKS.gdb\ParcelIDs"); string tableName = Path.GetFileName(tablePath); const string searchField = "PID"; Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = Activator.CreateInstance(factoryType) as IWorkspaceFactory; IWorkspace workspace = workspaceFactory.OpenFromFile(Path.GetDirectoryName(tablePath), 0); IObjectClassDescription objClassDesc = new ObjectClassDescriptionClass(); IFields fields = objClassDesc.RequiredFields; IFieldsEdit fieldsEdit = (IFieldsEdit)fields; IField field = new FieldClass(); IFieldEdit fieldEdit = (IFieldEdit)field; fieldEdit.Name_2 = searchField; fieldEdit.Type_2 = esriFieldType.esriFieldTypeString; fieldEdit.IsNullable_2 = true; fieldEdit.AliasName_2 = searchField; fieldEdit.Editable_2 = true; fieldEdit.Length_2 = 250; fieldsEdit.AddField(field); fields = fieldsEdit; ITable table = CreateTable((IWorkspace2)workspace, tableName, fields); using (ComReleaser releaser = new ComReleaser()) { ICursor cursor = table.Insert(true); releaser.ManageLifetime(cursor); string txtPath = Path.Combine(DataPath, "UniqueValues.txt"); int searchFieldIndex = table.FindField(searchField); IRowBuffer buffer = table.CreateRowBuffer(); using (StreamReader reader = new StreamReader(txtPath)) { string line; while ((line = reader.ReadLine()) != null) { string id = line.Split(new[] { '.', ' ' }, StringSplitOptions.RemoveEmptyEntries)[1]; buffer.Value[searchFieldIndex] = id; cursor.InsertRow(buffer); } cursor.Flush(); } } ((ITableCollection)ArcMap.Document.FocusMap).AddTable(table); ArcMap.Document.UpdateContents(); Marshal.FinalReleaseComObject(table); }
/// <summary> /// Create the analysis layer, load the locations, solve the analysis, and write to disk /// </summary> public void SolveRoute() { // Open the feature workspace, input feature class, and network dataset // As Workspace Factories are Singleton objects, they must be instantiated with the Activator IWorkspaceFactory workspaceFactory = System.Activator.CreateInstance(System.Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory")) as IWorkspaceFactory; IFeatureWorkspace featureWorkspace = workspaceFactory.OpenFromFile(Application.StartupPath + FGDB_WORKSPACE, 0) as IFeatureWorkspace; IFeatureClass inputStopsFClass = featureWorkspace.OpenFeatureClass(INPUT_STOPS_FC); // Obtain the dataset container from the workspace ESRI.ArcGIS.Geodatabase.IFeatureDataset featureDataset = featureWorkspace.OpenFeatureDataset(FEATURE_DATASET); var featureDatasetExtensionContainer = featureDataset as ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtensionContainer; ESRI.ArcGIS.Geodatabase.IFeatureDatasetExtension featureDatasetExtension = featureDatasetExtensionContainer.FindExtension(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTNetworkDataset); var datasetContainer3 = featureDatasetExtension as ESRI.ArcGIS.Geodatabase.IDatasetContainer3; // Use the container to open the network dataset. ESRI.ArcGIS.Geodatabase.IDataset dataset = datasetContainer3.get_DatasetByName(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTNetworkDataset, NETWORK_DATASET); INetworkDataset networkDataset = dataset as INetworkDataset; // Create the Route NALayer INALayer naLayer = CreateRouteAnalysisLayer("Route", networkDataset); INAContext naContext = naLayer.Context; INAClass stopsNAClass = naContext.NAClasses.get_ItemByName("Stops") as INAClass; IFeatureClass routesFC = naContext.NAClasses.get_ItemByName("Routes") as IFeatureClass; // Load the Stops INAClassFieldMap naClassFieldMap = new NAClassFieldMapClass(); naClassFieldMap.set_MappedField("Name", INPUT_NAME_FIELD); INAClassLoader naLoader = new NAClassLoaderClass(); naLoader.Locator = naContext.Locator; naLoader.NAClass = stopsNAClass; naLoader.FieldMap = naClassFieldMap; // Avoid loading network locations onto non-traversable portions of elements INALocator3 locator = naContext.Locator as INALocator3; locator.ExcludeRestrictedElements = true; locator.CacheRestrictedElements(naContext); int rowsInCursor = 0; int rowsLocated = 0; naLoader.Load(inputStopsFClass.Search(new QueryFilterClass(), false) as ICursor, new CancelTrackerClass(), ref rowsInCursor, ref rowsLocated); //Message all of the network analysis agents that the analysis context has changed ((INAContextEdit)naContext).ContextChanged(); //Solve INASolver naSolver = naContext.Solver; naSolver.Solve(naContext, new GPMessagesClass(), new CancelTrackerClass()); //Save the layer to disk SaveLayerToDisk(naLayer as ILayer, System.Environment.CurrentDirectory + @"\Route.lyr"); }
private IWorkspace ConnectToFgdb(string path) { Type factoryType = Type.GetTypeFromProgID( "esriDataSourcesGDB.FileGDBWorkspaceFactory"); IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance (factoryType); return(workspaceFactory.OpenFromFile(path, 0)); }
/// <summary> /// Connects to the geodatabase given the specified parameters. /// </summary> /// <param name="fileName">Name of the file.</param> /// <returns> /// Returns the <see cref="IWorkspace" /> representing the connection to the geodatabase; otherwise <c>null</c>. /// </returns> protected IWorkspace Open(string fileName) { Log.Info(""); Log.Info("Connecting to the geodatabase specified by the {0} file.", Path.GetFileName(fileName)); IWorkspaceFactory factory = WorkspaceFactories.GetFactory(fileName); return(factory.OpenFromFile(fileName, 0)); }
public static void MyClassInitialize(TestContext testContext) { // 打开测试shp数据 Type FactoryType = Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory"); m_workspaceFactory = Activator.CreateInstance(FactoryType) as IWorkspaceFactory; string shpPath = System.IO.Path.GetFullPath(TestInitialize.m_testDataPath + "shapefiles\\airports.shp"); m_featureWorkspace = m_workspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(shpPath), 0) as IFeatureWorkspace; }
public IWorkspace OpenSDEWorkspace() { m_workspaceFactory = new FileGDBWorkspaceFactoryClass(); IFeatureWorkspace featureWorkspace = null; try { featureWorkspace = m_workspaceFactory.OpenFromFile(m_fgdbPath, 0) as IFeatureWorkspace; } catch { MessageBox.Show("请检查连接SDE服务器的连接字符串"); return null; } IWorkspace workspace = featureWorkspace as IWorkspace; this.m_workSpace = workspace; return workspace; }
/// <summary> /// /// </summary> /// <param name="pSourceFeatureClass"></param> /// <param name="_pTWorkspaceFactory"></param> /// <param name="_pTWs"></param> /// <param name="_pTName"></param> public void ConvertQuery2FeatureClass( IFeatureClass pSourceFeatureClass , IWorkspaceFactory _pTWorkspaceFactory, String _pTWs, string _pTName) { IWorkspace pTWorkspace = _pTWorkspaceFactory.OpenFromFile(_pTWs, 0); IDataset pSDataset = pSourceFeatureClass as IDataset; IFeatureClassName pSourceFeatureClassName = pSDataset.FullName as IFeatureClassName; IDataset pTDataset = (IDataset)pTWorkspace; IName pTDatasetName = pTDataset.FullName; IWorkspaceName pTargetWorkspaceName = (IWorkspaceName)pTDatasetName; IFeatureClassName pTargetFeatureClassName = new FeatureClassNameClass(); IDatasetName pTargetDatasetName = (IDatasetName)pTargetFeatureClassName; // 验证要素类的名称是否合法,但是并没有对这个名称是否存在做检查 string pTableName = null; IFieldChecker pNameChecker = new FieldCheckerClass(); pNameChecker.ValidateWorkspace = pTWorkspace; int pFlag = pNameChecker.ValidateTableName(_pTName, out pTableName); pTargetDatasetName.Name = pTableName; pTargetDatasetName.WorkspaceName = pTargetWorkspaceName; // 创建字段检查对象 IFieldChecker pFieldChecker = new FieldCheckerClass(); IFields sourceFields = pSourceFeatureClass.Fields; IFields pTargetFields = null; IEnumFieldError pEnumFieldError = null; pFieldChecker.InputWorkspace = ((IDataset)pSourceFeatureClass).Workspace; pFieldChecker.ValidateWorkspace = pTWorkspace; // 验证字段 pFieldChecker.Validate(sourceFields, out pEnumFieldError, out pTargetFields); if (pEnumFieldError != null) { // 报错提示 Console.WriteLine("Errors were encountered during field validation."); } String pShapeFieldName = pSourceFeatureClass.ShapeFieldName; int pFieldIndex = pSourceFeatureClass.FindField(pShapeFieldName); IField pShapeField = sourceFields.get_Field(pFieldIndex); IGeometryDef pTargetGeometryDef = pShapeField.GeometryDef; // 创建要素转换对象 IFeatureDataConverter pFDConverter = new FeatureDataConverterClass(); IEnumInvalidObject pEnumInvalidObject = pFDConverter.ConvertFeatureClass(pSourceFeatureClassName, null, null, pTargetFeatureClassName, pTargetGeometryDef, pTargetFields, "", 1000, 0); // 检查是否有错误 IInvalidObjectInfo pInvalidInfo = null; pEnumInvalidObject.Reset(); while ((pInvalidInfo = pEnumInvalidObject.Next()) != null) { // 报错提示. Console.WriteLine("Errors occurred for the following feature: {0}", pInvalidInfo.InvalidObjectID); } }
public IFeatureWorkspace OpenSHPWorkspace(string shpPath) { m_workspaceFactory = new ShapefileWorkspaceFactoryClass(); IFeatureWorkspace featureWorkspce = m_workspaceFactory.OpenFromFile(shpPath, 0) as IFeatureWorkspace; return featureWorkspce; }
public IFeatureWorkspace OpenCadWorkspace(string cadPath) { m_workspaceFactory = new CadWorkspaceFactoryClass(); IFeatureWorkspace featureWorkspce = m_workspaceFactory.OpenFromFile(cadPath, 0) as IFeatureWorkspace; return featureWorkspce; }