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;

}

}

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. Redis学习笔记(6)-SortedSet

    package cn.com; import java.util.HashMap; import java.util.Map; import java.util.Set; import redis.c ...

  2. Linux最常用命令及快捷键整理

    最近在学Linux系统命令,在阿里云买了一台linux服务器.为方便自己也方便他人,整理了Linux常用命令及快捷键. 用命令: 文件和目录: # cd /home                   ...

  3. SQL Server中的Image数据类型的操作

    原文:SQL Server中的Image数据类型的操作 准备工作,在库Im_Test中建立一张表Im_Info,此表中有两个字段,分别为Pr_Id (INT),Pr_Info (IMAGE),用来存储 ...

  4. 破解Mysql数据库密码

    破解Mysql数据库密码 点我,点我,破解mysql数据库密码:

  5. POJ 1528问题描述

    Description From the article Number Theory in the 1994 Microsoft Encarta: ``If a, b, c are integers ...

  6. 测试环境下将centos6.8升级到centos7的操作记录(转)

    在测试环境下安装openstack,由于在centos6下安装openstack,针对源的问题有很多,安装起来很不顺利! 但是在centos7下安装却很顺利,所以考虑将服务器由centos6升级到ce ...

  7. zabbix使用tokudb引擎替换innodb引擎

    zabbix数据量大,数据量增长很快,使用tokudb可以更好的压缩 使用tokudb,用percona 或mariadb数据库 1.查看数据库版本 (1)登录数据库的时候可以看到 (2)status ...

  8. shell && 和 || 的短路使用

    shell && 和 || 的短路使用 && 和 || 在 shell 中分别表示 and 和 or,和其它语言类似,这两个操作有短路效应.也就是说,当判断式已经确定时 ...

  9. navicat premium 导出表结构

    1.右键 点击public,然后选择 数据传输 2.选择数据库对象,目标选择文件,选择文件的路径,然后开始

  10. nsstring基本数据类型的包装类

    // //  main.m //  10-基本数据类型的包装类 // //  Created by apple on 14-3-20. //  Copyright (c) 2014年 apple. A ...