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

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

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

字段对应表中的一列,一个要素类必须有至少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;

}

}

shp图层创建的更多相关文章

  1. 开一个帖子,等有时间了写写如何用shapelib创建点线面等shp图层

    开一个帖子,等有时间了写写如何用shapelib创建点线面等shp图层  C#操作shapelib的实例 http://files.cnblogs.com/yuxuetaoxp/Shapelib--D ...

  2. [转] arcgis Engine创建shp图层

    小生 原文 arcgis Engine创建shp图层 以创建点图层为例.首先要得到保存文件的地址. SaveFileDialog saveFileDialog = new SaveFileDialog ...

  3. arcgis api for js入门开发系列十叠加SHP图层

    上一篇实现了demo的热力图,本篇新增叠加SHP图层,截图如下: 叠加SHP图层效果实现的思路如下:利用封装的js文件,直接读取shp图层,然后转换geojson,最后通过arcgis api来解析转 ...

  4. arcgis api 3.x for js 地图加载多个 SHP 图层压缩以及 json 文件展示(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  5. openlayers4 入门开发系列之批量叠加 zip 压缩 SHP 图层篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  6. arcgis api 3.x for js 入门开发系列批量叠加 zip 压缩 SHP 图层优化篇(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  7. arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  8. arcEngine开发之根据点坐标创建Shp图层

    思路 根据点坐标创建Shapefile文件大致思路是这样的: (1)创建表的工作空间,通过 IField.IFieldsEdit.IField 等接口创建属性字段,添加到要素集中. (2)根据获取点的 ...

  9. ArcGIS api for javascript——图层-创建定制的切片图层类型的图层

    描述 本例展示了如何创建一个定制图层,该图层访问来自WEB服务器的地图切片.这种方式最通用的用途是检索ArcGIS Server 9.2切片缓存或web上的其他地图切片服务.尽管本例使用的是一个Arc ...

随机推荐

  1. MVC HTML辅助类常用方法记录

    (1)@Html.DisplayNameFor(model => model.Title)是显示列名, (2)@Html.DisplayFor(modelItem => item.Titl ...

  2. 报javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception异常 的解决方案

    后台错误信息如下: javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception org.a ...

  3. php--无限极分类

    效果图:

  4. 比较setImmediate(func),setTimeout(func),process.nextTick(func)

    node中的事件优先级机制: console.log('第一笔!'); process.nextTick(function() { console.log('吃个饭吧!'); setImmediata ...

  5. JDK中的URLConnection参数详解

    针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验 ...

  6. block 反向传值回调

    /** *  block 反向传值回调 */ //在第二个控制器中 //   (1)声明block,在基类中已写好 //   (2)写好传值方法 //(1) typedef void (^Return ...

  7. Java学习-034-JavaWeb_003 -- JSP page 指令

    前文对 JSP 的基础知识进行了初步的讲解,此文主要讲述 JSP page 指令. page 指令用于定义页面的多种属性,例如:脚本语言.编码方式.导入的 Java 包等,page 执行的语法如下: ...

  8. linux多个python版本下导致no request报错

    解决办法: sudo apt-get install uwsgi uwsgi-core uwsgi-plugin-python sudo apt-get install uwsgi-plugin-py ...

  9. Android 开发之如何保证Service不被杀掉(broadcast+system/app)

    序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill,这可真是一个难题.参考了现今各种定制版的系统和安全厂商牛虻 ...

  10. C语言中malloc()和calloc()c函数用法

    C语言中malloc()和calloc()c函数用法   函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别. malloc()函数有一个参数,即要分配的内存空间的大小: ...