Ну, мы поместили здесь ответ, который не является полным ответом на наш вопрос, то есть вопрос останется « открытым для ответа ». Это, однако, решение проблемы в вопросе. Вот трюк, который мы использовали:
Сначала давайте посмотрим результаты :
Таким образом, данные линии в left
построенных полигонах показаны в middle
. Они настоящие многоугольники, как показано в right
;)
Для приведенного ниже алгоритма мы использовали Shapely
пакет в Python .
- линии ==>
MultiLineString
{:: M}
- добавить крошечный
buffer
, скажем, eps
{:: MB}
- регион ==>
Polygon
{:: P} (регион здесь квадрат)
P.difference(MB)
{получившиеся полигоны}
Обратите внимание, что он работает тихо и быстро. Однако упущение заключается в том, что алгоритм не является оригинальным методом построения многоугольника из линий . Тем не менее, это отлично сработало для проблемы, которую мы имели в наших руках.