arcobject创建featureclass

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;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值