首页 / 浏览问题 / 组件GIS / 问题详情
线和面数据自相交数据修复
9EXP 2022年10月15日

数据导入数据到pg里面会出现部分数据的在pg里面用st_isvalid出现验证不通过,存在自相交情况;
需要修复对应的线和面的自相交数据,是否有对应的组件接口来完成,若无,是需要如何操作完成对应的修复。若有,是需要调用那个接口。
(注:在做自相交之前已经做TopologyValidator.repairGeometry 和  TopologyValidator.integrate 处理
产品: IObject for Java 10.2 

1个回答

您好,iObjects Java 组件提供了 TopologyValidator.checkGeometry 方法用于检测几何对象是否存在问题,且提供了 TopologyValidator.repairGeometry 方法用于修复 TopologyValidator.checkGeometry 方法检测出来的几何问题。

根据您上述的描述,建议您在调用 TopologyValidator.repairGeometry 接口之前先使用 TopologyValidator.checkGeometry 接口检测是否存在对象自相交的情况,若检测出来几何对象无自相交的情况,则即使调用 TopologyValidator.repairGeometry 接口也无法修复检测不出来的错误情况。

若您使用 TopologyValidator.checkGeometry 接口无法检测出存在问题的错误情况,建议您私信我您的联系方式,将测试数据和测试代码发给我看看。

希望可以帮到您。
2,253EXP 2022年10月17日
好的,我这边试一下,我还想问一下,TopologyValidator.repairGeometry 和  TopologyValidator.integrate的先后顺序是否会影响到数据的修复呢

您好,是有可能会影响的,建议按以下顺序执行:

  1. TopologyValidator.integrate;
  2. TopologyValidator.checkGeometry;
  3. TopologyValidator.repairGeometry。
代码和数据如何发给您,我是repairGeometry后导入到PG数据库里面使用st_isvalid进行操作的
与客户沟通后,客户的数据是两个面数据集相交后产生的岛洞数据,这种情况下的岛洞数据无法通过 PostGIS 的 st_isvalid 函数验证,而基于 Geometrist.XOR 异或运算生成的岛洞数据,才可以通过 st_isvalid 函数验证。
...