离线gdb导入sde时,面要素提示the number of points is less than required
Posted on 2020-06-22 10:38 xudongrui 阅读(644) 评论(0) 收藏 举报在一个项目中,需要把离线的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。
浙公网安备 33010602011771号