Связанный вопрос:
Алгоритм накачивания / выкачивания (смещения, буферизации) полигонов
Разница в том, что я ищу способ накачать данную полилинию в многоугольник:
У меня есть следующий вход:
На выходе должен быть многоугольник, который показывает, как линия выглядит расширенной по ширине.
Я изначально думал, что смогу использовать Повышение :: геометрия :: буфер для этого, к сожалению, это только кажется, поддерживает коробки на данный момент. Решение с использованием Повысьте :: Геометрия или же GDAL / OGR будет предпочтительным.
ОБНОВИТЬ:
Я решил использовать Clipper Library и его OffsetPolyLines функция. Как только Boost Geometry будет выпущен с поддержкой Polyline-Buffer, я переключусь на Boost (так как все остальное работает с Boost в моем программном обеспечении).
Я понимаю, что OP предпочитал решение в Boost :: Geometry или GDAL / OGR, но, если другие люди следуют этой теме, мой Библиотека Clipper также можно сделать смещение полилинии. (Скоро будет выпущен версия 6 это уже есть в репозитории SourceForge, что упрощает это, и теперь оно также поддерживает обрезание по открытому пути (полилинии).)
Расширение Boost.Geometry (из магистрали) может сделать это. Это еще не выпущено. Он может буферизоваться вокруг многоугольников, многоугольников, точек и нескольких геометрий. Вы можете указать острые углы (митра) или закругленные углы. Это еще не идеально, но линии, как показано в примере выше, не должны создавать проблем.
В выпущенной версии (1.54) этого еще нет, а также в следующей не будет. Так что сейчас вы должны использовать магистраль (из SVN)