Задание ширины линии для создания многоугольника

У меня есть линейная строка WKT, и я хочу использовать ее для поиска пересечений в postgis, но линейная строка имеет некоторый уровень ошибки и не будет идеально пересекать вещи, хранящиеся в postgis, поэтому я хочу преобразовать ее в многоугольник и выдать ее n метров, чтобы он пересекался с вещами рядом с ним.

Пример того, что я хочу сделать. Зеленый - многоугольник, созданный из линии

Язык решения не имеет большого значения. Я могу адаптировать решение для работы, поэтому я просто ищу какой-то общий алгоритм, который может создать многоугольник. Линейная строка содержит географические координаты, поэтому я думаю, насколько далеко n метров может быть сложно.

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

1 ответ

Решение

Похоже, это можно сделать с помощью postgis. http://www.postgis.org/docs/ST_Buffer.html

SELECT ST_Buffer(
 ST_GeomFromText(
  'LINESTRING(50 50,150 150,150 50)'
 ), 10, 'endcap=round join=round');
Другие вопросы по тегам