如何创建一个FeatureClass,IFeatureWorkspace 接口漫谈

IFeatureWorkspace接口是在工作空间中创建对象主要使用的接口。方法:

 Description
MethodCreateFeatureClassCreates a new standalone feature class under the workspace.//创建一个FeatureClass
MethodCreateFeatureDatasetCreates a new feature dataset.//创建一个FeatureDataset
MethodCreateQueryDefCreate a query definition object.
MethodCreateRelationshipClassCreates a new relationship class.
MethodCreateTableCreates a new table. //创建表
MethodOpenFeatureClassOpens an existing feature class.//从工作空间中打开一个FeatureClass
MethodOpenFeatureDatasetOpens an existing feature dataset.
MethodOpenFeatureQueryOpens a feature dataset containing a single feature class defined by the specified Query.
MethodOpenRelationshipClassOpens an existing relationship class.
MethodOpenRelationshipQueryThe table of a relationship join query.
MethodOpenTableOpens an existing table.                                            //打开存在的表
1、创建一个FeatureClass

public IFeatureClass CreateFeatureClass (
    string Name,
    IFields Fields,
    UID CLSID,
    UID EXTCLSID,
    esriFeatureType FeatureType,
    string ShapeFieldName,
    string ConfigKeyword
);
esriFeatureType见点击打开链接
2、创建FeatureDataset

public IFeatureDataset CreateFeatureDataset (
    string Name,
    ISpatialReference SpatialReference
);
3、

public IQueryDef CreateQueryDef (
);
4、
public IFeatureClass OpenFeatureClass (
    string Name
);

打开一个FeatureClass
(Workspace as IFeatureWorkspace).OpenFeatureClass(FeatureClassName);

创建例子:
        /// <summary>
        /// 创建要素类
        /// </summary>
        /// <param name="workspace"></param>
        /// <param name="featureDataset"></param>
        /// <param name="featureClassName"></param>
        /// <param name="fields"></param>
        /// <param name="CLSID"></param>
        /// <param name="CLSEXT"></param>
        /// <param name="strConfigKeyword"></param>
        /// <returns></returns>
        public static IFeatureClass CreateFeatureClass(IFeatureDataset featureDataset, String featureClassName, IFields fields)
        {
            if (_workSpaceInstance == nullreturn null;
            IFeatureClass featureClass = null;
            IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)_workSpaceInstance; 

            // assign the class id value if not assigned
            ESRI.ArcGIS.esriSystem.UID CLSID = null;
            ESRI.ArcGIS.esriSystem.UID CLSEXT = null;
            string strConfigKeyword = "";
            if (CLSID == null)
            {
                CLSID = new ESRI.ArcGIS.esriSystem.UIDClass();
                CLSID.Value = "esriGeoDatabase.Feature";
            }

            System.String strShapeField = "";

            // locate the shape field
            for (Int32 j = 0; j < fields.FieldCount; j++)
            {
                esriFieldType dd = fields.get_Field(j).Type;
                if (dd == esriFieldType.esriFieldTypeGeometry)
                {
                    strShapeField = fields.get_Field(j).Name;
                }
            }

            // finally create and return the feature class
            if (featureDataset != null)
            {
                featureClass = featureDataset.CreateFeatureClass(featureClassName, fields, CLSID, CLSEXT, esriFeatureType.esriFTSimple, strShapeField, strConfigKeyword);
            }
            
            return featureClass;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值