首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

arcobject创办featureclass

2012-12-18 
arcobject创建featureclassprivate IFeatureClass createFeatureClass(IServerContext sc,IFeatureWorkspa

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;    }

热点排行