`
lorry1113
  • 浏览: 263241 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

arcobject创建featureclass

    博客分类:
  • GIS
 
阅读更多
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;
    }
分享到:
评论

相关推荐

    ArcObject3D空间对象查询

    4. **执行查询**:使用FeatureLayer或FeatureClass的SelectByShape或SelectByAttribute方法,根据设置的查询参数选取符合条件的对象。 ```csharp featureLayer.SelectByShape(spatialFilter.Geometry, true, null);...

    基于c#的Arcobject的一个实例

    featureLayer.FeatureClass = featureClass; map.AddLayer(featureLayer); ``` 除了基本的地图操作,ArcObjects还提供了丰富的空间分析功能。例如,我们可以使用`IQueryFilter`进行查询,`IRelationshipClass`处理...

    ArcObject Java的Jar包

    1. **地图对象模型**:ArcObject提供了一个层次化的地图对象模型,包括Map、Layer、FeatureClass、Feature等。这些对象代表了GIS中的核心概念,如地图、图层、矢量要素类和要素。通过操作这些对象,开发者可以实现...

    AO.rar_Arcobject

    ArcObject包含了一系列的对象模型,如Map、Layer、FeatureClass等,它们分别代表了地图、图层和要素类等GIS元素。通过编程语言调用这些对象的方法和属性,可以实现对GIS数据的读取、写入和操作。 在实践课程中,"AO...

    AO实例_ArcObject+MFC

    然后,利用`IGeoFeature::putref_FeatureClass`关联特征类,通过`IGeoFeature::SetGeometryDirectly`设置几何,`IFeatureClass::Insert`插入新特征。 描述中提到的“简单的操作”可能包括编辑几何,更新属性,或者...

    基于ArcObject与C#.NET的GIS应用开发(代码).

    3. **ArcObjects SDK**:ArcObjects SDK包含了丰富的类库,这些类库对应了GIS中的各种对象,如Map、FeatureClass、FeatureLayer等。开发者需要熟悉这些类库,理解它们的功能和用法。 4. **地图对象模型**:ArcGIS的...

    ao学习资料

    理解FeatureClass、FeatureLayer、Feature对象,以及如何执行SQL查询和空间查询。 **5. 地图渲染与符号化** 学习如何控制地图的视觉效果,包括设置比例尺、添加图层、调整符号系统、使用渲染器。理解不同类型的渲染...

    arcobjects.zip

    接着,可以使用`FeatureClass`的`Query`方法进行数据查询,或者创建`FeatureCursor`来遍历和修改特征。 为了更深入地利用ArcObjects.jar,开发者需要熟悉Esri的GIS概念和术语,例如图层(Layer)、要素(Feature)...

    arcgis开发生成剖面线

    这里我们使用了InMemoryWorkspaceFactory对象来创建一个内存工作空间,然后创建一个FeatureClass对象,并将其添加到工作空间中。 本文中,我们使用了ArcGIS Engine来开发生成剖面线的代码,但同样的方法也可以应用...

Global site tag (gtag.js) - Google Analytics