Gdal中集成了FileGDB在GDB文件中为什么进行弧线以及圆的处理时会出错,而椭圆就没关系?

Gdal中集成了FileGDB在GDB文件中为什么进行弧线以及圆的处理时会出错,而椭圆就没关系?


在C#环境下Gdal中集成了FileGDB在GDB文件中为什么进行弧线以及圆的处理时会出错,而椭圆就没关系?
问题如上。
错误提示为:Incompatible geometry for operation.

错误出现的代码,当inSubGeometry输入为椭圆数据时不会报错,为弧线数据或者圆时就报错。是Gdal中或FileGDB中不支持弧线的解译吗?

//令inSubGeometry为特征中一条线的属性
Geometry inSubGeometry = inGeometry.GetGeometryRef(i);



//往outSubGeometry线中添加点,点坐标为inSubGeometry中的坐标变换而来
 pointX[j] = inSubGeometry.GetX(j);
 pointY[j] = inSubGeometry.GetY(j);
 pointZ[j] = inSubGeometry.GetZ(j);
outSubGeometry.AddPoint(inSubGeometry.GetX(j) + 100, inSubGeometry.GetY(j) + 100, inSubGeometry.GetZ(j));

2020.03.24 更新

原因在于Esri FileGDB API对于曲线处理并不支持,对于曲线进行平移旋转缩放处理时,会对曲线进行放大缩小,原因暂时还不知道为什么。
而由于在GDAL对于FileGDB的编辑操作是由编译Esri FileGDB API支持的,同理会出现问题。
但是有个折中的办法,使用GDAL对FileGDB中的曲线进行重构处理,这时弧线不再是ArcGIS中真正支持的弧线数据类型了,而是重采样后的拟合线。但变成这样后再进行坐标处理,就不会出现问题了。

你可能感兴趣的:(ArcGIS二次开发,FileGDB,API,C#,Gda,FileGDB,ArcGIS,二次开发)