shp图层创建

简介:

 

主要是使用IFieldIFieldEditIFieldsIFieldsEditIGeometryDefIGeometryDefEdit接口。

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

 

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

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

参考1

复制代码
//定义一个几何字段,类型为点类型
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, nullnull, esriFeatureType.esriFTSimple, "SHAPE"null)
复制代码

 

如何改变字段的别名

复制代码
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;
}
}
复制代码

 

参考2

  生成新的shapefile

新建shapefile,自定义字段,路径自定义。
在文件里加入POLYGON,自定义字段值

  自定义字段值,并添加要素

 

 

 

参考文章

爱神之剑, shp图层创建

duckweeds新建shapefile,自定义字段,新加入记录

 

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。





    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6110413.html ,如需转载请自行联系原作者
相关文章
|
7月前
|
编解码
没有地理参考的图层添加坐标系:ENVI
本文介绍基于ENVI软件,对不含有任何地理参考信息的栅格遥感影像添加地理坐标系或投影坐标系等地理参考信息的方法~
122 4
没有地理参考的图层添加坐标系:ENVI
|
4月前
|
定位技术
ArcGIS中ArcMap创建渔网Create Fishnet:生成指定大小的格网矢量文件
ArcGIS中ArcMap创建渔网Create Fishnet:生成指定大小的格网矢量文件
|
4月前
|
存储 定位技术
ArcGIS中ArcMap导入mxd地图文档文件出现红色感叹号、地图空白的解决
ArcGIS中ArcMap导入mxd地图文档文件出现红色感叹号、地图空白的解决
|
4月前
|
定位技术
ArcGIS中ArcMap创建镶嵌数据集、导入栅格图像文件并修改像元数值范围的方法
ArcGIS中ArcMap创建镶嵌数据集、导入栅格图像文件并修改像元数值范围的方法
|
4月前
|
并行计算 定位技术
ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决
ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决
|
7月前
|
JSON 数据格式
使用Fiona创建Shapefile矢量数据
使用Fiona写入Shapefile数据,主要是构建一个Schema,然后将空间对象转为GeoJSON的形式进行写入。 这个Schema是一个字典结构,定义了Geometry的类型,属性字段的名称及其类型。
65 0
|
7月前
使用Rasterio创建栅格数据
使用Rasterio创建并写入栅格数据比GDAL还简单一些,基本使用到两个函数:rasterio.open()和write()
89 0
ArcMap转换shp坐标系
使用arcmap转换文件的坐标系
145 0
|
定位技术
leaflet图层管理,图层组
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/82683629 leaflet图层管理,图层组 www.
2102 0
|
C#
C# 操作Excel图形——绘制、读取、隐藏、删除图形
简介 本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点: 1.绘制图形    1.1 绘制图形并添加文本到图形    1.2 添加图片到图形    1.3 设置图形阴影效果 2. 提取图形中的文本、图片 3.
1680 0