
捕捉到 System.Runtime.InteropServices.COMException
HResult=-2147220935
Message=平板电脑墨迹错误代码。多次调用 RtpEnabled (异常来自 HRESULT:0x80040239)
Source=ESRI.ArcGIS.Geometry
ErrorCode=-2147220935
一、问题描述:
一个GDB中的数据集中的要素有5596条记录,其中只有一条记录报错,把这个数据导成SHP格式就不报错。单独把这一条数据拿出来(仍是GDB中)也不停地报错。
报错的代码为:
IGeometry bufferFeature = topoOPer.Buffer(buffer);//获取到一个buffer图形
二、排查过程:
检查了两天,发现,这个图形的奇怪之处在于,当buffer=100 ---100.9的时候,就报错,当不在这个范围之内就不报错,这个一直不知道是怎么回事?而且只针对这一个图斑,图斑检查了也没有问题,是简单图形。
一直找不到问题的症结所在。
三、解决办法
buffer += 50 改为 buffer += 200;
将循环中的buffer参数由50改到200,问题解决了。
四、疑问?
为什么只有这一个图斑有这种问题,为什么把它导出成shp就没有问题?这个GIS的一个BUG吗?希望有高手能点。
五、补充,终于找到问题根源了。
今天受一朋友启发,找到了上面那个报错的图斑的图形,发现有一条边有凹进去的一个小角,问题就出在这个凹进去的小角。如果把这个小角删掉,就不报错了。
现在明白了,看来这个是arcgis缓冲的bug,只能这样理解了。


博客围绕ArcGIS中GDB数据集要素缓冲报错展开。一个GDB数据集有5596条记录,仅一条报错,导出成SHP格式则正常。排查发现特定buffer范围报错,最终将buffer参数修改解决问题,后发现是图斑一条边凹角所致,推测为ArcGIS缓冲的bug。
662

被折叠的 条评论
为什么被折叠?



