suncarry
路人甲
路人甲
  • 注册日期2004-12-22
  • 发帖数2
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1246回复:0

SDE转换成SHP格式时如何去除SE_ANNO_CAD_DATA字段?

楼主#
更多 发布于:2008-12-20 15:01
<P>读取SDE数据转换成SHP格式时,SE_ANNO_CAD_DATA字段为blob类型,如何带有这个字段转换就会出错,请教如何去掉?相关代码如下:</P>
<P>            //设置导出要素类的参数<BR>            IFeatureClassName pOutFeatureClassName = new FeatureClassNameClass();<BR>            IDataset pOutDataset = (IDataset)apFeatureClass;<BR>            pOutFeatureClassName = (IFeatureClassName)pOutDataset.FullName;<BR>            <BR>            //创建一个要素集合<BR>            IFeatureDatasetName pInFeatureDatasetName = null;<BR>            //创建一个要素类<BR>            IFeatureClassName pInFeatureClassName = new FeatureClassNameClass();<BR>            IDatasetName pInDatasetClassName;<BR>            pInDatasetClassName = (IDatasetName)pInFeatureClassName;<BR>            pInDatasetClassName.Name = apFeatureClass.AliasName;//ExportFileShortName 作为输出参数<BR>            pInDatasetClassName.WorkspaceName = pInWorkspaceName;</P>
<P><BR>            ////通过FIELDCHECKER检查字段的合法性,为输出SHP获得字段集合<BR>            long iCounter;<BR>            IFields pOutFields, pInFields;<BR>            IFieldChecker pFieldChecker;<BR>            IField pGeoField;<BR>            IEnumFieldError pEnumFieldError = null;<BR>            pInFields = apFeatureClass.Fields;<BR>            pFieldChecker = new FieldChecker();<BR>            pFieldChecker.Validate(pInFields, out pEnumFieldError, out pOutFields);<BR>            //通过循环查找几何字段<BR>            pGeoField = null;<BR>            for (iCounter = 0; iCounter < pOutFields.FieldCount; iCounter++)<BR>            {<BR>                if (pOutFields.get_Field((int)iCounter).Type == esriFieldType.esriFieldTypeGeometry)<BR>                {<BR>                    pGeoField = pOutFields.get_Field((int)iCounter);<BR>                    break;<BR>                }<BR>            }<BR>            //得到几何字段的几何定义<BR>            IGeometryDef pOutGeometryDef;<BR>            IGeometryDefEdit pOutGeometryDefEdit;<BR>            pOutGeometryDef = pGeoField.GeometryDef;<BR>            //设置几何字段的空间参考和网格<BR>            pOutGeometryDefEdit = (IGeometryDefEdit)pOutGeometryDef;<BR>            pOutGeometryDefEdit.GridCount_2 = 1;<BR>            pOutGeometryDefEdit.set_GridSize(0, 1500000);</P>
<P><BR>            try<BR>            {<BR>                //开始导入<BR>                IFeatureDataConverter pShpToClsConverter = new FeatureDataConverterClass();<BR>                pShpToClsConverter.ConvertFeatureClass(pOutFeatureClassName, null, pInFeatureDatasetName, pInFeatureClassName, pOutGeometryDef, pOutFields, "", 1000, 0);                <BR>                //MessageBox.Show("导出成功", "系统提示");<BR>            }<BR>            catch (Exception ex)<BR>            {<BR>                //MessageBox.Show("the following exception occurred:" + ex.ToString());<BR>            }</P>
喜欢0 评分0
游客

返回顶部