您的位置:首页 > Web前端

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

2014-12-30 15:13 387 查看
IFeatureWorkspace接口是在工作空间中创建对象主要使用的接口。方法:

AllProperties
Methods
Description
CreateFeatureClassCreates a new standalone feature class under the workspace.//创建一个FeatureClass
CreateFeatureDatasetCreates a new feature dataset.//创建一个FeatureDataset
CreateQueryDefCreate a query definition object.
CreateRelationshipClassCreates a new relationship class.
CreateTableCreates a new table.
//创建表
OpenFeatureClassOpens an existing feature class.//从工作空间中打开一个FeatureClass
OpenFeatureDatasetOpens an existing feature dataset.
OpenFeatureQueryOpens a feature dataset containing a single feature class defined by the specified Query.
OpenRelationshipClassOpens an existing relationship class.
OpenRelationshipQueryThe table of a relationship join query.
OpenTableOpens 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
);
[code]
打开一个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 == null) return 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: