斯潘8
斯潘4
这更多的是为了记录我从一个多边形的地理数据库文件写入一个带有多边形的SDE实例时遇到的试验和问题。虽然人们认为以一种ESRI格式存储的多边形在写入另一种ESRI格式时会很好,不需要验证,事实并非如此。以下是我在切换到FME时遇到的问题,以查找和绕过一个坏特性,因为一个面积为1x10^-20的近乎共线的小三角形而导致数据负载中断。
首先,我尝试直接从gdb插入到sde。这给了我一个错误:
尝试使用光标将行插入表“parcel_data”时出错。arcObjects的错误号为:“-2147215968”。来自arcObjects的错误消息是:LineString或Poly Boundary是自相交的
然后我试着运行几何验证器,使用这些设置,将传递和修复的多边形发送到SDE。这给了我一个错误:无法将非区域功能写入区域功能类
进一步的调查显示,几何验证程序将一些多边形块修复为FME_线条对象,并将这些多边形块与FME_多边形对象一起作为FME_聚合发送。
几何验证器的一个很好的选择可能是允许修复的零件仅包括与原始零件相同几何类型的零件。
所以,我添加了一个测试过滤器,按@geometrytype()=fme_polygon拆分所有内容,FME-聚集体,FMEYLIN,把过去的多边形发送到SDE,聚集成一个几何分离机,只保留多边形,测试再次过滤它们以确保它们是FME多边形,然后把他们送到SDE。这在22000000个特性中起到了很好的作用,然后又被错误阻塞了:试图使用光标将行插入表“parcel\u data”时出错。arcObjects的错误号为:“-2147216041”。来自arcObjects的错误消息是:形状完整性错误
惊奇,几何验证器中有一个非常小的多边形,其面积为1x10^-20,因为里面有4个共线点,基本上是一条线,但根据FME,官方上还是一个多边形。然后,我将AreaCalculator+测试仪添加到几何验证器传递的两个几何图形中,以及几何体量角器修复的FME_多边形,确认没有面积小于0.0000000000001的多边形传入SDE,最后我的数据加载完成了。
希望最终能帮助别人,在文档中几乎看不到geometryvalidator如何将结果作为聚合返回,geometryartextractor屏幕截图可能对其他人有所帮助。
如果你喜欢的话,您也可以享受:https://knowledge.亚搏在线safe.com/questions/78927/how-to-turn-fake-holes-into-proper-ones-opposite-o.html
几何验证器是一个复杂而强大的转换器,您需要确保它不会产生和它解决的问题一样多的问题。关键是尽可能多地了解源数据,尤其是“有趣”和“挑战”的方式,它可能已经数字化了!有时这只是一个幸运的例子,你随机选择的测试数据!
?2019安全亚搏在线软件公司|合法的