ArcEngine图层Join表后保存为shape后,shape属性表不全

caodajiefly 2011-09-22 11:16:12
麻烦大家看一下,我是用一个图层jion另一个图层的,join后,查看属性表,确实两个图层的属性信息都有

但是将join后的面图层输出后,只有原来的属性信息(join前面的属性信息),没有join后的属性信息(面和点的属性信息)。

我保存Feature class 为shape的方法如下:

private void saveAllFeature(IFeatureLayer featureLayer)

{

IFeatureClass pInputFeatureClass = featureLayer.FeatureClass;



IFeatureClass featureclass = ptable as IFeatureClass;

IDataset pInDataset = featureclass as IDataset;

IDataset pInDataset = pInputFeatureClass as IDataset;

IDatasetName pInDatasetName = pInDataset.FullName as IDatasetName;

IFeatureClassName pInFeatureClassName = pInDatasetName as IFeatureClassName;




IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();

IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(fileDir, 0);



IDataset pOutDataset = pWorkspace as IDataset;

IWorkspaceName pOutWorkspaceName = pOutDataset.FullName as IWorkspaceName;



IFeatureClassName pOutFeatureClassName = new FeatureClassNameClass();

IDatasetName pOutDatasetName = pOutFeatureClassName as IDatasetName;

pOutDatasetName.Name = fileName;



pOutDatasetName.WorkspaceName = pOutWorkspaceName;

//////////////////////////////////////////////////////////////////////////

IFields pOutFields, pInFields;



IFieldChecker pFieldChecker;



IField pGeoField;



IEnumFieldError pEnumFieldError = null;



pInFields = pInputFeatureClass.Fields;



pFieldChecker = new FieldChecker();

pFieldChecker.Validate(pInFields, out pEnumFieldError, out pOutFields);



String shapeFieldName = pInputFeatureClass.ShapeFieldName;



int shapeFieldIndex = pInputFeatureClass.FindField(shapeFieldName);



IField shapeField = pInputFeatureClass.Fields.get_Field(shapeFieldIndex);



IGeometryDef geometryDef = shapeField.GeometryDef;



IClone geometryDefClone = (IClone)geometryDef;



IClone outGeometryDefClone = geometryDefClone.Clone();



IGeometryDef outGeometryDef = (IGeometryDef)outGeometryDefClone;



IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass();



featureDataConverter.ConvertFeatureClass(pInFeatureClassName, null, null, pOutFeatureClassName,

outGeometryDef, pOutFields, "", 1000, 0);



}




麻烦大家看下一如何修改这个方法才能将join后面和点的属性信息都保存到输出的新图层中?
谢谢谢谢。。
...全文
223 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
NotMe2008 2014-06-06
  • 打赏
  • 举报
回复
featureLayer.FeatureClass改成(featureLayer as IGeoFeatureLayer).DisplayFeatureClass

2,143

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧