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;
}
分享到:
相关推荐
vba开发,ArcMAP上定制功能按钮,实现与GoogleEarth的同步显示,适合于遥感图像解译、规划、分类等做参考。 (vba development, ArcMAP the custom function button, and the synchronization with the GoogleEarth ...
AO开发教程,帮助您了解ArcObject 开发使用手册
基于VB的Arcobject二次开发,适合初学者,内容详细
ARCOBJECT二次开发教程 c#版的
ArcServer开发 ArcObject宝典
全面介绍了arcobject,用于arcgis二次开发
基于C#的ArcObject开发基于C#的ArcObject开发基于C#的ArcObject开发
ArcObject常用VBA代码,关于AO开发,对于初学者有很好的帮助!
ArcObject概念及体系结构 学习AO的必选资料 初学者了解AO体系结构的很好资料
Arcobject及VBA 开发教程PPT,非常适合学习。
ArcObject应用开发课程(PPT课件)
这是一篇介绍ArcObject OMD的通俗易懂的文献,希望对关注者有帮助。
ArcObject 组件开发高级教程
告诉你AO是什么,能做什么,需要的技术基础,开发工具,类和对象,AO对象的使用,开发模式,AO高级通用组件
利用ArcObject3D的SceneCtrol组件,结合C#语言实现三维对象的空间查询功能代码。
一本 详细介绍ArcObject 的书,使用C#语言介绍
ArcObject编程帮助,非常适用初学者进行学习,大家抓紧下载这个资源吧
c#下Arcobject的应用实例 介绍了AO在c#下的加载、创建的基本流程
关于地理信息系统开发。通过vc++开发arcobject。内容很详细。
ArcEngine是时下最优秀的二次开发组件。本教程对ArcEngine入门有非常好的帮助,用时下最流行的C#语言编写。鼓励大家积极下载