码迷,mamicode.com
首页 > 数据库 > 详细

离线gdb导入sde时,面要素提示the number of points is less than required

时间:2020-06-22 10:43:32      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:gdb   dataset   cti   cal   提示   异常   col   一个   调用   

在一个项目中,需要把离线的gdb数据原封不动导入到sde中,出现一个奇怪现象,同为WGS1984坐标系的要素类,在入库时提示点数过少的异常错误,找到对应的数据记录后,发现图形确实很小,怀疑本地要素类的空间分辨率和Sde中要素类的空间分辨率不一致,直接导致面要素不能闭合。经过几次尝试,入库前做以下处理后,即可完整入库。
1.为sde新建要素赋值shape属性前,将从离线gdb中获取的图形IGeometry pSrcGeo拷贝一份得到pCopyGeo,并把pSrcGeo的SpatialReference赋值为sde要素类的spatialReference,即pSrcGeo.SpatialReference = pSdeDataset.SpatialReference
2.将pSrcGeo赋值给新建的要素IFeature pNewFt的shape字段,即pNewFt.Shape = pSrcGeo
3.获取新建要素pNewFt的shape,并将其转换为IGeometryCollection pNewGeoColl,把原有的Geometry集合全部删除,从pCopyGeo中获取部件,重新加入到pNewGeoColl中后,调用ITopologicalOperator的simplify方法,最后调用要素的保存方法,或者批量Flush。

离线gdb导入sde时,面要素提示the number of points is less than required

标签:gdb   dataset   cti   cal   提示   异常   col   一个   调用   

原文地址:https://www.cnblogs.com/gis-xdr/p/13175616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!