Как я могу добавить точки к многоугольникам, у которых есть четкие грани?

У меня есть две смежные формы, как на изображении А ниже. Как я могу добавить левую красную точку к синему многоугольнику (poly1) и правую красную точку к серому многоугольнику (poly2)? Идея состоит в том, что обе фигуры будут иметь общий сегмент линии, определяемый этими двумя точками.

A)  смежные фигуры

Я могу найти LineString, который является пересечением, вызвав poly1.intersection(poly2), но я не знаю, как добавить недостающую точку или точки (как это потребуется в ситуации ниже на изображении B).

Б)  введите здесь описание изображения


person Jamie Bull    schedule 06.04.2016    source источник


Ответы (1)


Я думаю, что правильный ответ - использовать union, хотя, если мне чего-то не хватает, я был бы рад это услышать.

poly1 = wkt.loads("POLYGON((1 1,2 1,2 2,1 2,1 1))")
poly2 = wkt.loads("POLYGON((1.5 2,2.5 2,2.5 3,1.5 3,1.5 2))")

shared_line = poly1.intersection(poly2)
poly1 = poly1.union(shared_line)
poly2 = poly2.union(shared_line)
person Jamie Bull    schedule 06.04.2016