博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shp图层创建
阅读量:6618 次
发布时间:2019-06-24

本文共 2761 字,大约阅读时间需要 9 分钟。

IField,IFieldEdit,IFields,IFieldsEdit,IGeometryDef,IGeometryDefEdit接口

 (2013-05-06 20:40:27)
标签:

分类: 

IFieldIFieldEditIFieldsIFieldsEditIGeometryDefIGeometryDefEdit接口

字段对应表中的一列,一个要素类必须有至少2个字段,而多个字段的集合就构成了字段集,在要素类中,有一个特殊的字段,描述了空间对象,我们称之为几何字段,其中GeometryDef是用来设计几何字段的。这个几何字段定义了要素类的类型,比如说我们要在Catalog创建一个点要素类,那么我们必须指定他的类型为Point,如下图:

而上面这6个接口,其实是三类,以Edit结尾的接口是可写的,也就是说对字段,字段集合,以及几何字段的编辑都是通过后者完成的。空间数据的一个重要属性就是参考系,参考系也是在GeometryDef中定义的。

注意 在NET中,会遇到以“_2”结尾的属性,这些属性是可写的。

//定义一个几何字段,类型为点类型

ISpatialReference pSpatialReference = axMapControl1.ActiveView.FocusMap.SpatialReference;

IGeometryDefEdit pGeoDef = new GeometryDefClass();

IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit;

pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;

pGeoDefEdit.SpatialReference_2 = pSpatialReference;

//定义一个字段集合对象

IFields pFields = new FieldsClass();

IFieldsEdit pFieldsEdit = (IFieldsEdit)pFields;

//定义单个的字段

IField pField = new FieldClass();

IFieldEdit pFieldEdit = (IFieldEdit)pField;

pFieldEdit.Name_2 = "SHAPE";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;

pFieldsEdit.AddField(pField);

pFieldEdit.GeometryDef_2 = pGeoDef;

//定义单个的字段,并添加到字段集合中

pField = new FieldClass();

pFieldEdit = (IFieldEdit)pField;

pFieldEdit.Name_2 = "STCD";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;

pFieldsEdit.AddField(pField);

//定义单个的字段,并添加到字段集合中

pField = new FieldClass();

pFieldEdit = (IFieldEdit)pField;

pFieldEdit.Name_2 = "SLM10";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;

pFieldsEdit.AddField(pField);

//定义单个的字段,并添加到字段集合中

pField = new FieldClass();

pFieldEdit = (IFieldEdit)pField;

pFieldEdit.Name_2 = "SLM20";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;

pFieldsEdit.AddField(pField);

//定义单个的字段,并添加到字段集合中

pField = new FieldClass();

pFieldEdit = (IFieldEdit)pField;

pFieldEdit.Name_2 = "SLM40";

pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;

pFieldsEdit.AddField(pField);

IWorkspaceFactory pFtWsFct = new AccessWorkspaceFactory();

IFeatureWorkspace pWs = pFtWsFct.OpenFromFile(@"E:\arcgis\Engine\s.mdb", 0) as IFeatureWorkspace; 内部文档,请勿外传

IFeatureClass pFtClass = pWs.CreateFeatureClass("Test", pFields, null, null, esriFeatureType.esriFTSimple, "SHAPE", null)

结果如下:

 

如何改变字段的别名4.8

public void ChangeFieldAliasName(ITable pTable, string pOriFieldName, string pDesFieldName)

{

IClassSchemaEdit pClassSchemaEdit = (IClassSchemaEdit)pTable;

//给对象加上锁

ISchemaLock pSchemaLock = (ISchemaLock)pTable;

pSchemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock);

if (pTable.FindField(pOriFieldName) != -1)

{

pClassSchemaEdit.AlterFieldAliasName(pOriFieldName, pDesFieldName);

pSchemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);

}

else

{

return;

}

}

转载于:https://www.cnblogs.com/qiuzhongyang/p/3874121.html

你可能感兴趣的文章
相等与全等
查看>>
VS无法设置断点的解决方案
查看>>
Android -- 再来一发Notification
查看>>
从尾到头打印链表
查看>>
android 开发之电子钢琴 源码
查看>>
Java的jar文件安装成windows 服务
查看>>
MapGuide中怎么实现“指哪儿打哪儿”?ToolTip帮你忙~
查看>>
GridView添加统计(合计)行
查看>>
第3部分。XAML标记扩展
查看>>
Linux 定时运行脚本、命令
查看>>
如何让你的程序运行的更快(1)之续---揭秘StringBuffer的capacity
查看>>
php mysqli mysqli_query() mysqli_real_query()
查看>>
开源欣赏wordpress之用户新增user-new.php
查看>>
管理Mysql常用指令
查看>>
jQuery 2.0.3 源码分析 数据缓存
查看>>
nginx访问报错:Too many open files accept:
查看>>
NSPredicate,谓词
查看>>
MVC自定义路由的配置,必须把自己的路由写在前面
查看>>
[翻译]Java Swing(1)
查看>>
基于suse linux系统的cacti系统部署——rpm包方式
查看>>