zoukankan      html  css  js  c++  java
  • gis数据格式转换(数据导入)ConvertFeaCls

    本文主要对数据导入等里 常用的不同格式数据创建、转换等 进行代码示例。主要用到IFeatureDataConverter.ConvertFeatureClass方法。

     

    代码如下,难度不大,只是个技巧问题:

     

    函数:

    private void ConvertFeaCls(IWorkspace workspaceSource, IWorkspace workspaceTar, stringsSorceFeaClsName, string sTarFeaClsName, string sFeaDTName)
    
            {
    
                IFeatureClass feaCls = (workspaceSource asIFeatureWorkspace).OpenFeatureClass(sSorceFeaClsName);
    
                String shapeFieldName = feaCls.ShapeFieldName;
    
                int shapeFieldIndex = feaCls.FindField(shapeFieldName);
    
                IField shapeField = feaCls.Fields.get_Field(shapeFieldIndex);
    
                IGeometryDef geometryDef = shapeField.GeometryDef;
    
     
    
                //create source workspace name  
    
                IDataset sourceWorkspaceDataset = (IDataset)workspaceSource;
    
                IWorkspaceName sourceWorkspaceName = (IWorkspaceName)sourceWorkspaceDataset.FullName;
    
                //create source dataset name  
    
                IFeatureClassName sourceFeatureClassName = new FeatureClassNameClass();
    
                IDatasetName sourceDatasetName = (IDatasetName)sourceFeatureClassName;
    
                sourceDatasetName.WorkspaceName = sourceWorkspaceName;
    
                sourceDatasetName.Name = sSorceFeaClsName;
    
     
    
                //create target workspace name  
    
                IDataset tarWorkspaceDataset = (IDataset)workspaceTar;
    
                IWorkspaceName tarWorkspaceName = (IWorkspaceName)tarWorkspaceDataset.FullName;
    
                //create target dataset name  
    
                IFeatureClassName tarFeatureClassName = new FeatureClassNameClass();
    
                IDatasetName tarDatasetName = (IDatasetName)tarFeatureClassName;
    
                tarDatasetName.WorkspaceName = tarWorkspaceName;
    
                tarDatasetName.Name = sTarFeaClsName;
    
     
    
                IFeatureDatasetName tarFeatureDatasetName = new FeatureDatasetNameClass();
    
                (tarFeatureDatasetName as IDatasetName).WorkspaceName = tarWorkspaceName;
    
                (tarFeatureDatasetName as IDatasetName).Name = sFeaDTName;
    
     
    
                if (string.IsNullOrEmpty(sFeaDTName))
    
                {
    
                    tarFeatureDatasetName = null;
    
                }
    
     
    
                IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass();
    
                featureDataConverter.ConvertFeatureClass(sourceFeatureClassName, null, tarFeatureDatasetName, tarFeatureClassName, geometryDef, feaCls.Fields, "", 1000, 0);    // Check for errors.
    
            }

     

    调用:

               

     IWorkspaceFactory2 workspaceFactory = new ShapefileWorkspaceFactoryClass() asIWorkspaceFactory2;
    
                IWorkspace workspace = workspaceFactory.OpenFromFile(@"E:jhl", 0);
    
                IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
    
                IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(Functions.g_ROAD);
    
               
    
                IWorkspace workspace2 = workspaceFactory.OpenFromFile(@"E:", 0);
    
                DeleteShapeFileIFExist(@"E:", "test6");
    
                ConvertFeaCls(workspace, workspace2, Functions.g_ROAD,  "test6",string.Empty);
  • 相关阅读:
    Java虚拟机一览表
    Java程序员的10道XML面试题
    bzoj 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课【spfa】
    bzoj 1703: [Usaco2007 Mar]Ranking the Cows 奶牛排名【bitset+Floyd传递闭包】
    bzoj 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝【dp+树状数组】
    bzoj 2100: [Usaco2010 Dec]Apple Delivery【spfa】
    bzoj 2015: [Usaco2010 Feb]Chocolate Giving【spfa】
    bzoj 1741: [Usaco2005 nov]Asteroids 穿越小行星群【最大点覆盖】
    bzoj 1645: [Usaco2007 Open]City Horizon 城市地平线【线段树+hash】
    bzoj 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛【树形dp】
  • 原文地址:https://www.cnblogs.com/jhlong/p/5394477.html
Copyright © 2011-2022 走看看