jts에서, 내가 지오메트리를 할 때 buffer (1) .buffer (-1), 결과 형상이 원본과 동일합니까?

StackOverflow https://stackoverflow.com/questions/2470135

  •  20-09-2019
  •  | 
  •  

문제

두 개의 형상을 교차하는 동안 문제가 있었는데, 아마도 수술 중 반올림 오류로 인해 토폴로지 exception을 얻은 다음 읽었습니다. 이 수정 그리고 시도했습니다 buffer(0) 두 입력 형상 모두에서 여전히 성공하지 못했습니다. 그런 다음 시도했습니다 geo.buffer(1).buffer(-1) 그리고 그것은 효과가있었습니다.

이 기하학이 원래의 기하학과 동일합니까?

도움이 되었습니까?

해결책

나는 JT에 대해 아무것도 모르지만 일반적으로 사실은 아닙니다.

두 가지 모양이 있다고 가정합니다.

 XXX      XXX
 X X      XXX
 XXX      XXX

내 이해에서 a buffer(1) 두 가지 모두에 대략 다음과 같은 결과를 초래할 것입니다.

XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX

지금 buffer(-1) 이 두 모양에서 두 가지 다른 결과를 생성 할 수 없습니다.

효과적으로 a buffer() 운영은 정보가 느슨해 지므로 다른 곳에서 해당 정보를 다시 대지 않으면 취소 할 수 없습니다.

다른 팁

나는이 형상들이 동일하다고 생각하지 않습니다. 기본적으로 동작 버퍼링 기능은 원래 구성에 정점을 추가하며 동일한 정점이 제거 될 것이라는 보장은 없습니다.

매우 작은 버퍼 인 A.Buffer (0.00001)를 사용해보십시오 (예 : 메트릭 시스템의 좌표 인 경우 1/1000 mm).

Postgis에서는이 작업을 수행하여 일부 문제가 수정됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top