В JTS, когда я делаю геометрию. Буффер (1). Буффер (-1), будет ли полученная геометрия эквивалентна оригиналу?

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

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня были проблемы во время пересечения двух геометрий, получая топологию, вероятно, из -за ошибки округления во время операции, а затем я прочитал это исправление и попробовал buffer(0) На обеих входных геометриях, но все еще без успеха. Тогда я попытался geo.buffer(1).buffer(-1) И это сработало.

Будут ли эти геометрии эквивалентны исходным?

Это было полезно?

Решение

Я ничего не знаю о JTS, но в целом это не может быть правдой.

Предположим, у вас есть две формы:

 XXX      XXX
 X X      XXX
 XXX      XXX

От моего понимания buffer(1) на обоих приведет примерно к этому:

XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX

В настоящее время buffer(-1) Не сможет получить два разных результата из этих двух форм.

Эффективно а buffer() Операция теряет информацию, поэтому она не может быть отменена без повторного адаптации этой информации откуда-то еще.

Другие советы

Я не думаю, что эта геометрия будет такой же. По умолчанию буферизация поведения. Функция Добавьте вершины в исходную конфигурацию, и нет никакой гарантии, что те же вершины будут удалены.

Попробуйте сделать очень маленький буфер, A.Buffer (0,00001), например (1/1000 мм, если координаты в метрических системах).

В постгисе некоторые проблемы исправляются с помощью этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top