GDB中创建要素数据集
//在数据集中创建要素
private void menuItem25_Click(object sender, System.EventArgs e)
{
CreateFClassInPDB(@"C:\ArcGIS\ArcTutor\BuildingaGeodatabase\Montgomery.mdb");
}
public static void CreateFClassInPDB(string filePath){
string shapeFieldName="shape";
IFeatureWorkspace pFWS;
try
{
pFWS=openPDB(filePath);
//IEnumDataset pDatasets;
//pDatasets=pWS.get_Datasets(esriDatasetType.esriDTFeatureDataset);
IFeatureDataset pFeatureDataset=pFWS.OpenFeatureDataset("Water");
//MessageBox.Show(pFeatureDataset.Name);
// IDataset pDataset=pDatasets.Next();
// IFeatureDataset pFeatureDataset=pDataset as IFeatureDataset;
IGeoDataset pGeoDataset=pFeatureDataset as IGeoDataset;
IFields pFields = null;
IFieldsEdit pFieldsEdit = null;
pFields = new FieldsClass();
pFieldsEdit=pFields as IFieldsEdit;
pFieldsEdit.FieldCount_2=;
IField pField = null;
IFieldEdit pFieldEdit = null;
//Make the shape field it will need a geometry definition, with a spatial reference
pField=new FieldClass();
pFieldEdit=pField as IFieldEdit;
pFieldEdit.Name_2=shapeFieldName;
pFieldEdit.Type_2=esriFieldType.esriFieldTypeGeometry;
IGeometryDef pGeomDef = null;
IGeometryDefEdit pGeomDefEdit = null;
pGeomDef = new GeometryDefClass();
pGeomDefEdit =pGeomDef as IGeometryDefEdit;
pGeomDefEdit.GeometryType_2=esriGeometryType.esriGeometryPolygon;
pGeomDefEdit.SpatialReference_2=pGeoDataset.SpatialReference;//get the spatial reference
pFieldEdit.GeometryDef_2=pGeomDefEdit;
//pFieldsEdit.AddField(pField);
pFieldsEdit.set_Field(,pField);
//Add another miscellaneous text field
pField = new FieldClass();
pFieldEdit = pField as IFieldEdit;
pFieldEdit.Length_2=;
pFieldEdit.Name_2="TextField";
pFieldEdit.Type_2=esriFieldType.esriFieldTypeString;
//pFieldsEdit.AddField(pField);
pFieldsEdit.set_Field(,pField);
//pFeatureDataset.CreateFeatureClass("test",pFields,null,null,esriFeatureType.esriFTSimple,"Shape","");
UID pUID;
pUID = new UIDClass();
pUID.Value="esriGeoDatabase.Feature";
//pFeatureDataset.CreateFeatureClass("test",pFields,pUID,null,esriFeatureType.esriFTSimple,"Shape","");
pFeatureDataset.CreateFeatureClass("test",pFields,pUID,null,esriFeatureType.esriFTSimple,"Shape","");
MessageBox.Show("创建成功");
}
catch(Exception e){
MessageBox.Show(e.Message);
}
}
//创建shapefile文件
public static void createShapeFile(String folderName,String shapeName){
if(folderName==""||shapeName=="") return;
string shapeFieldName="shape";
try
{
IFeatureWorkspace pFWS = null;
IWorkspaceFactory pWorkspaceFactory = null;
pWorkspaceFactory = new Shapef
ileWorkspaceFactoryClass();
//if(pWorkspaceFactory.IsWorkspace(folderName)==false) return;
pFWS=pWorkspaceFactory.OpenFromFile(folderName,) as IFeatureWorkspace;
IFields pFields = null;
IFieldsEdit pFieldsEdit = null;
pFields = new FieldsClass();
pFieldsEdit=pFields as IFieldsEdit;
IField pField = null;
IFieldEdit pFieldEdit = null;
//Make the shape field it will need a geometry definition, with a spatial reference
pField=new FieldClass();
pFieldEdit=pField as IFieldEdit;
pFieldEdit.Name_2=shapeFieldName;
pFieldEdit.Type_2=esriFieldType.esriFieldTypeGeometry;
IGeometryDef pGeomDef = null;
IGeometryDefEdit pGeomDefEdit = null;
pGeomDef = new GeometryDefClass();
pGeomDefEdit =pGeomDef as IGeometryDefEdit;
pGeomDefEdit.GeometryType_2=esriGeometryType.esriGeometryPolygon;
pGeomDefEdit.SpatialReference_2=new UnknownCoordinateSystemClass();
pFieldEdit.GeometryDef_2=pGeomDefEdit;
pFieldsEdit.AddField(pField);
//Add another miscellaneous text field
pField = new FieldClass();
pFieldEdit = pField as IFieldEdit;
pFieldEdit.Length_2=;
pFieldEdit.Name_2="TextField";
pFieldEdit.Type_2=esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField(pField);
IFeatureClass pFeatClass = null;
pFeatClass = pFWS.CreateFeatureClass(shapeName, pFields, null, null,esriFeatureType.esriFTSimple, shapeFieldName, "");
MessageBox.Show("名为"+shapeName+"的shape文件创建成功");
}
catch(Exception e){
MessageBox.Show(e.Message);
}
}
GDB中创建要素数据集的更多相关文章
- ArcGIS 网络分析[1.3] 在个人地理数据库中创建网络数据集/并简单试验最佳路径
上篇使用shp文件创建网络数据集,然而在ArcGIS 9中就支持地理数据库了,数据库的管理更为科学强大. 本篇就使用个人地理数据库进行建立网络数据集,线数据仍然可以是1.1中的线数据,但是我做了一些修 ...
- 用ArcMap在PostgreSQL中创建要素类需要执行”create enterprise geodatabase”吗
问:用Acmap在PostgreSQL中创建要素类需要执行"create enterprise geodatabase"吗? 关于这个问题,是在为新员工做postgresql培训后 ...
- 不同版本的ArcMap在Oracle中创建镶嵌数据集的不同行为
如果不同版本的ArcMap连接到同一个Oracle数据库上,分别执行"创建镶嵌数据集",它们的行为是一样的吗? 答案是:不一样,会有细微的差别 在本例中,ArcMap的版本分别是1 ...
- ArcSDE:C#创建SDE要素数据集
转自原文 ArcSDE:C#创建SDE要素数据集 /// <summary> /// 判断指定数据集是否存在 /// </summary> /// <param name ...
- Arcengine实现创建网络数据集札记(一)
一 引子 网络数据集,GIS空间分析基础的理论和知识,是最短路径分析.连通性分析等其他空间分析技术的数据基础. 以往,网络数据集的研究很少,此次项目开发过程中,对网络数据集以及arcengine创建网 ...
- ArcGIS 网络分析[8.3] 设置IDENetworkDataset的属性及INetworkDataset的对比/创建网络数据集
创建网络数据集就得有各种数据和参数,这篇文章很长,慎入. 网络分析依赖于网络数据集的质量,这句话就在这里得到了验证:复杂.精确定义. 本节目录如下: 1. INetworkDataset与IDENet ...
- ArcGIS 网络分析[8.2] 资料2 使用IDatasetContainer2接口的CreateDataset方法创建网络数据集
上节提及如何使用IDatasetContainer2接口访问到网络数据集,上例可以封装为一个方法. 这节就使用IDatasetContainer2接口(Geodatabase类库)的CreateDat ...
- ArcGIS创建要素类
在使用ARCGIS软件进行工作时,免不了要建立地理数据库和要素类之类的.一下是我创建文件地理数据库并在数据库中创建要素类写相关步骤: 1.启动软件,可以使用ARCCatalog直接进行创建也可以使用A ...
- AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
/// <summary> /// 创建多边形shp /// </summary> /// <param name="pPolygon">< ...
随机推荐
- int long long 的取值范围
unsigned int 0-4294967295 //整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明 ...
- HDU 5375 Gray code(DP)
题意:给一串字符串,里面可能出现0,1,?,当中问号可能为0或1,将这个二进制转换为格雷码后,格雷码的每位有一个权值,当格雷码位取1时.加上该位权值,求最大权值和为多少. 分析:比赛的时候愚了.竟然以 ...
- Java Security安全系列文档翻译笔记————KeyStore、密钥、证书、命令行实战
发送方任务: 1.将文档.源代码打包到jar包(这样才干够签名) 2.在keystore中生成相应的Private key和Public key 3.用Private Key对jar包进行签名,这是j ...
- php 内置的 html 格式化/美化tidy函数 -- 让你的HTML更美观
php 内置的 html 格式化/美化tidy函数 https://github.com/htacg/tidy-html5 # HTML 格式化 function beautify_html($htm ...
- BZOJ 1231 状压DP
思路: f[i][j] i表示集合的组成 j表示选最后一个数 f[i][j]表示能选的方案数 f[i|(1<< k)][k]+=f[i][j]; k不属于i j属于i且符合题意 最后Σf[ ...
- ActionListener三种实现
/** * Simple1.java - 处理事件的第一种方法 * 在这个例子中,利用一个ActionListener来监听事件源产生的事件 * 用一些if语句来决定是哪个事件源 */ import ...
- Python修改文件内容
工作中要写个脚本来修改文件的内容,然后就写了一个刷子: #coding:utf8 import os def modify_file(old_file, new_version, old_versio ...
- __get__()方法研究
看源码的时候发现了这个魔法方法 class A(object): def __init__(self): self.name = 'mod' def __get__(self, instance, o ...
- 【剑指Offer学习】【面试题49:把字符串转换成整数】
题目:实现一个函数stringToInt,实现把字符串转换成整数这个功能.不能使用atoi或者其它相似的库函数. 题目解析 这看起来是非常easy的题目,实现基本功能 ,大部分人都能用10行之内的代码 ...
- eclipse- 智能提示设置
最近自己ubuntu 下的eclipse没办法只能提示了.后来在网上查了方法,完美解决了问题 1.java代码编辑的时候不提示 具体如下 Windows→Preferences→Java→Editor ...