1

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

这些几何形状是否与原始几何形状相同?

4

2 回答 2

5

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

假设您有两种形状:

XXXXXX
 XXXXX
 XXXXXX

据我了解buffer(1),两者都会导致大致这样:

XXXXXX
XXXXXX
XXXXXX
XXXXXX
XXXXXX

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

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

于 2010-03-18T14:09:53.593 回答
3

我认为这些几何形状不会相同。默认情况下,缓冲要素的行为会将顶点添加到其原始配置中,并且不能保证会删除相同的顶点。

尝试做一个非常小的缓冲区,a.buffer(0.00001),例如(1/1000 毫米,如果是公制坐标)。

在 PostGIS 中,通过这样做可以纠正一些问题。

于 2010-03-18T14:06:56.363 回答