在 JTS 中,当我执行 geometry.buffer(1).buffer(-1) 时,生成的几何图形是否等同于原始几何图形?

Pab*_*era 1 java geometry buffer jts

我在交叉两个几何图形时遇到问题,可能是由于操作期间出现舍入错误而导致 TopologyException,然后我阅读了此修复程序并尝试了buffer(0)两个输入几何图形,但仍然没有成功。然后我尝试了geo.buffer(1).buffer(-1),它奏效了。

这些几何图形与原始几何图形相同吗?

Joa*_*uer 5

我对 JTS 一无所知,但一般来说不可能是真的。

假设你有两个形状:

 XXX XXX
 XX XXX
 XXX XXX

根据我的理解buffer(1),两者都会导致大致如下:

XXXXXX
XXXXXX
XXXXXX
XXXXXX
XXXXXX

现在buffer(-1)将无法从这两种形状产生两种不同的结果。

实际上,buffer()操作会丢失信息,因此如果不从其他地方重新添加该信息,就无法撤消操作。