创建要素FeatureClass
来源:互联网 发布:工行黄金交易软件 编辑:程序博客网 时间:2024/05/23 11:52
创建要素数据
/// <summary> /// 在数据集下创建图层 /// </summary> /// <param name="featureClassName">图层名称</param> /// <param name="dicFields">属性结构</param> /// <param name="pfeaturedataset">数据集名称</param> /// <param name="classExtensionUID">类型UID</param> /// <param name="featureWorkspace">工作空间</param> /// <param name="spatialRef">空间参考</param> /// <param name="esrigeomtryType">几何类型</param> /// <returns></returns> public static IFeatureClass CreateFeatureClass(string featureClassName, Dictionary<string, string> dicFields, IFeatureDataset pfeaturedataset, UID classExtensionUID, IFeatureWorkspace featureWorkspace, esriGeometryType esrigeomtryType, ISpatialReference spatialRef) { IFeatureClass featureClass = null; featureClass = ExitFeatureClass((IWorkspace)featureWorkspace, featureClassName, esriDatasetType.esriDTFeatureClass); if (featureClass != null) { return featureClass; } try { //创建要素类的字段集合 IFields fields = new FieldsClass(); IFieldsEdit fieldsEdit = (IFieldsEdit)fields; if (dicFields != null && dicFields.Count == 0) { return null; } foreach (var item in dicFields) { fieldsEdit.AddField(BuildField(item.Key, item.Value)); } #region 添加Shape字段 //添加Shape字段 IGeometryDef geometryDef = new GeometryDefClass(); IGeometryDefEdit geometryDefEdit = (IGeometryDefEdit)geometryDef; geometryDefEdit.GeometryType_2 = esrigeomtryType; geometryDefEdit.SpatialReference_2 = spatialRef; IField geometryField = new FieldClass(); IFieldEdit geometryFieldEdit = (IFieldEdit)geometryField; geometryFieldEdit.Name_2 = "Shape"; geometryFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry; geometryFieldEdit.GeometryDef_2 = geometryDef; fieldsEdit.AddField(geometryField); #endregion //创建一个Validated Fields集合 IFieldChecker fieldChecker = new FieldCheckerClass(); IEnumFieldError enumFieldError = null; IFields validatedFields = null; fieldChecker.ValidateWorkspace = (IWorkspace)featureWorkspace; fieldChecker.Validate(fields, out enumFieldError, out validatedFields); featureClass = pfeaturedataset.CreateFeatureClass(featureClassName, validatedFields, null, classExtensionUID, esriFeatureType.esriFTSimple, "Shape", ""); return featureClass; } catch (Exception ex) { } return null; }
/// <summary> /// 创建属性结构 /// </summary> /// <param name="fldname">属性结构名称</param> /// <param name="fldtype">属性结构字段类型</param> /// <returns></returns> private static IField BuildField(string fldname, string fldtype) { IFields fields = new FieldsClass(); IField oidField = new FieldClass(); IFieldEdit oidFieldEdit = (IFieldEdit)oidField; oidFieldEdit.Name_2 = fldname; switch (fldtype.ToString().ToLower()) { case "objectid": oidFieldEdit.Type_2 = esriFieldType.esriFieldTypeOID; break; case "longinteger": oidFieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break; case "shortinteger": oidFieldEdit.Type_2 = esriFieldType.esriFieldTypeSmallInteger; break; case "text": oidFieldEdit.Type_2 = esriFieldType.esriFieldTypeString; oidFieldEdit.Length_2 = 50; break; case "double": oidFieldEdit.Type_2 = esriFieldType.esriFieldTypeDouble; break; case "geometry": oidFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry; break; } return oidField; }
欢迎扫描微信订阅号:
0 0
- 创建要素FeatureClass
- FeatureClass下创建要素(CreateFeature)遇到的一些问题及解决
- ArcEngine创建内存FeatureClass
- ArcGis 创建 FeatureClass
- 如何创建一个FeatureClass,IFeatureWorkspace 接口漫谈
- C#:arcengine 由FeatureClass创建Tin
- 根据要素创建要素类
- 用例创建要素
- 创建要素类
- 创建注记图层要素
- arcgis之创建要素
- ArcEngine创建要素
- ArcGIS操作之创建要素
- ARCEngine 添加创建线要素
- 关于FeatureClass
- 创建要素的两种方法(多要素)
- 创建FileGeodatabase,创建要素类,创建域对象,创建子类,创建要素
- ArcCatalog创建FeatureClass提示“Database user name and current user schema do not match”
- VS2010:error LNK2019 :无法解析的外部符号
- thinkphp3.2 ajax 提交返回数据
- Android设计模式1
- 欠自己的旅行,你打算什么时候还?
- 关于Segmentation fault (core dumped)几个简单问题
- 创建要素FeatureClass
- SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)的区别
- 我开发的一个端口映射小工具
- Linux下利用core来调试segmentation fault
- C语言矩阵乘法
- Android蓝牙4.0 关闭蓝牙重开无法根据地址连接问题
- 2016CCPC合肥总结
- java synchronized
- mybatis常用分页插件,快速分页处理