我们在使用java 的JTS 库来进行数据合并时,在进行数据擦除时,一直在报自相交错误,怀疑是数据问题,就使用了 arcmap 的 Check Geometry 来进行数据检查。 检查的结果为是一个警告,并非一个错误。 使用arcmap是可以进行擦除的。这就很让人疑惑。
2.png
最后我们怀疑是JTS 库有缺陷,最终证实了这个想法。 我们使用postGIS(pg数据库的一个插件)来进行数据擦除完全没有问题,但是只要使用了 JTS库的合并就会出现问题。 但并不是全部数据都出问题,有一些距离特别近的面就会出现自相交的错误。
得出结论: JTS库只能进行一下简单空间数据的操作,优化的并不完善,请尽可能直接使用数据本身自带的工具,或者使用python(底层是C++),或直接使用C++完成一些较为复杂数据的复杂操作。