2 つのジオメトリの交差中に問題が発生し、操作中の丸めエラーが原因で TopologyException が発生した可能性があります。この修正を読み、両方の入力ジオメトリでを試しましたbuffer(0)
が、まだ成功していません。それから私は試しgeo.buffer(1).buffer(-1)
てみましたが、うまくいきました。
これらのジオメトリは元のジオメトリと同等ですか?
私は JTS について何も知りませんが、一般的にはそうではありません。
次の 2 つの形状があるとします。
XXX XXX XXX XXX XXX XXX
私の理解から、buffer(1)
on both はおおよそ次のようになります。
XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX
buffer(-1)
これらの 2 つの形状から 2 つの異なる結果を生成することはできなくなります。
事実上、buffer()
操作によって情報が失われるため、別の場所からその情報を再度追加しない限り元に戻すことはできません。
これらのジオメトリが同じになるとは思いません。デフォルトのビヘイビア バッファリングでは、元の構成に頂点が追加されますが、同じ頂点が削除されるという保証はありません。
たとえば、非常に小さなバッファ a.buffer(0.00001) を実行してみてください (メートル法の座標の場合は 1/1000 mm)。
PostGIS では、これを行うことでいくつかの問題が修正されます。