shp图层创建

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

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

转载

标签:

arcgisengine二次开发

it

分类: ArcGISEngine开发

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图层创建

时间: 2024-10-23 09:58:39

shp图层创建的相关文章

C#中GDAL读写shp图层

采用GDAL17的C#库进行shp图层属性表读取和修改操作,C#DLL库解压后包含文件如下: 添加引用主要是带csharp的gdal.ogr.osr三个DLL,程序代码如下: using OSGeo.OGR; using OSGeo.OSR; using OSGeo.GDAL; 1.    读取shp图层操作 public void Reforming(string shpFilePath) { Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8",

[转] arcgis Engine创建shp图层

小生 原文 arcgis Engine创建shp图层 以创建点图层为例.首先要得到保存文件的地址. SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Shape文件(*.shp)|*.shp"; saveFileDialog.Title = "新建点形shp文件"; saveFileDialog.CheckFileExists = false; DialogR

建立图层 创建画笔 填充画布

//创建一个默认的文档app.documents.add() //建立第一个图层 // 在现有激活的文档上建立一个图层var layerRef = app.activeDocument.artLayers.add() // 下面是对图片的命名 还有就是图层的模式layerRef.name = "第一次创建图层名称"layerRef.blendMode =BlendMode.NORMAL // 激活图层选择所有app.activeDocument.selection.selectAll

openlayers入门开发系列之批量叠加zip压缩SHP图层篇

本篇的重点内容是直接加载压缩文件zip形式shp,可以批量加载点.线.面shp图层,效果图如下: 实现的思路跟之前实现arcgis api for js版本是一致的:arcgis api for js入门开发系列二十三批量叠加zip压缩SHP图层 压缩的shp截图如下: 实现的核心代码: //叠加压缩SHP图层,批量加载显示 $("#zipshp").click(function () { shp("js/main/shpJS/gishome.zip").then(

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

思路 根据点坐标创建Shapefile文件大致思路是这样的: (1)创建表的工作空间,通过 IField.IFieldsEdit.IField 等接口创建属性字段,添加到要素集中. (2)根据获取点的坐标信息为属性字段赋值,进而得到图层的要素集 必要元素 将创建 Shapefile 文件代码封装成方法如下,这里说明一下创建一 个 Shapefile 文件至少需要配置的元素: (1)首先,当我们创建一个shp文件时,ArcMap会自动生成如下字段: 其中shp表示几何字段,我们需要设置 IFile

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

描述 本例展示了如何创建一个定制图层,该图层访问来自WEB服务器的地图切片.这种方式最通用的用途是检索ArcGIS Server 9.2切片缓存或web上的其他地图切片服务.尽管本例使用的是一个ArcGIS Server 9.3服务,这仅仅是为了示范.当从9.3和更高版本时,最好使用ArcGISTileMapServiceLayer. 首先,代码声明一个继承esri.layers.TiledMapServiceLayer的定制的图层my.PortlandTiledMapServiceLayer.

cesium添加shp图层实现显示或隐藏行政界线

<!DOCTYPE html> <html lang="en"> <head> <!-- Use correct character set. --> <meta charset="utf-8"> <!-- Tell IE to use the latest, best version. --> <meta http-equiv="X-UA-Compatible" co

利用请求的JSON数据创建图形图层

先看效果图: 包含三个部分:信息窗口(标题是要素的某个属性信息,其余是感兴趣的属性信息).图上图形按照某一属性大小不一显示,图例 1.创建底图用于存放以上三部分: "esri/Map","esri/views/MapView" var map = new Map({ basemap:"dark-gray"}); var view = new MapView({ map:map, container:"viewDiv", cen

[GDAL]写入shp

C#通过Wkt码构建shp,记录写不进去! 1 static void WriteVectorFile() 2 { 3 string strVectorFile = "E:\\"; 4 // 注册所有的驱动 5 Ogr.RegisterAll(); 6 //创建数据,这里以创建ESRI的shp文件为例 7 string strDriverName = "ESRI Shapefile"; 8 Driver oDriver = Ogr.GetDriverByName(s