private IFeatureClass createFeatureClass(IServerContext sc,IFeatureWorkspace fws, ISpatialReference spatialReference) throws Exception{
IFeatureClass fClass ;
IFields fields =(Fields)sc.createObject(Fields.getClsid());
IFieldsEdit fieldsEdit = (IFieldsEdit)fields;
fieldsEdit.setFieldCount(3);
//创建对象id字段
IField field = (Field)sc.createObject(Field.getClsid());
IFieldEdit fieldEdit = (IFieldEdit)field;
fieldEdit.setName("OBJECTID");
fieldEdit.setAliasName("OBJECTID");
fieldEdit.setType(esriFieldType.esriFieldTypeOID);
fieldsEdit.setFieldByRef(0, field);
//创建几何形状字段
IField field1 = (Field)sc.createObject(Field.getClsid());
fieldEdit = (IFieldEdit)field1;
//为形状字段建立几何定义
IGeometryDef geometryDef =(GeometryDef)sc.createObject(GeometryDef.getClsid());
IGeometryDefEdit geometryDefEdit = (IGeometryDefEdit)geometryDef;
geometryDefEdit.setGeometryType(esriGeometryType.esriGeometryPoint);
geometryDefEdit.setGridCount(1);
geometryDefEdit.setGridSize(0, 0); //gridesize基于初次装载或者插入的features
geometryDefEdit.setHasM(false);
geometryDefEdit.setHasZ(false);
//配置空间参考,从feature dataset中继承
if (spatialReference != null) {
geometryDefEdit.setSpatialReferenceByRef(spatialReference);
}
//设置标准字段属性
fieldEdit.setName("SHAPE");
fieldEdit.setType(esriFieldType.esriFieldTypeGeometry) ;
fieldEdit.setGeometryDefByRef(geometryDef);
fieldEdit.setIsNullable(true);
fieldEdit.setRequired(true);
fieldsEdit.setFieldByRef(1, field1);
IField field2 = (Field)sc.createObject(Field.getClsid());
fieldEdit = (IFieldEdit)field2;
fieldEdit.setName("USERID");
fieldEdit.setAliasName("USERID");
fieldEdit.setEditable(true);
//fieldEdit.setIsNullable(false);
fieldEdit.setType(esriFieldType.esriFieldTypeString);
fieldsEdit.setFieldByRef(2, field2);
//通过指定的CLSID和EXTCLSID来创建一个feature class的描述对象
IFeatureClassDescription fcDesc = (FeatureClassDescription)sc.createObject(FeatureClassDescription.getClsid());
IObjectClassDescription ocDesc = (IObjectClassDescription)fcDesc;
fClass = fws.createFeatureClass("FeatureClass_temp", fields,
ocDesc.getInstanceCLSID(), ocDesc.getClassExtensionCLSID(),
esriFeatureType.esriFTSimple, "SHAPE", "");
return fClass;
}
arcobject创建featureclass
最新推荐文章于 2022-04-28 08:22:33 发布