Я ищу способ создания так называемых односторонних буферов или параллельных линий в PostGIS. Пример: 1. буфер, 2. односторонний, 3. двусторонний
Я нашел некоторые обсуждения в списке рассылки 2009 года и информацию о том, что он реализован в GEOS , но ничего о текущем статусе PostGIS.
Если функция еще не реализована, знаете ли вы какие-нибудь обходные пути? Можно ли отрезать одну сторону нормального буфера?
postgis
polyline-creation
buffer
parallel-lines
Подземье
источник
источник
Ответы:
Надлежащие односторонние буферы должны были появиться в 1.5 , но мне кажется, что, хотя стили и попали в него, односторонность не сделала этого. Однако существует текущий набор патчей, который выставляет
GEOSSingleSidedBuffer
и выполняет односторонний буфер, как и ожидалось. под именемST_OffsetCurve
; см. дополнительную информацию в билете № 413 . В использовании:источник
Этот образец создает два полигона с каждой стороны строки. Требуется PostGIS 1.5 или выше. Я не уверен, насколько хорошо он справится с линиями, которые пересекаются.
Это выводит:
Код работает следующим образом:
Это может быть улучшено, чтобы справиться с самопересекающимися линиями в будущем.
источник
Эта модификация создает две параллельные линейные линии. Требуется PostGIS 1.5 или выше.
требуемая геометрия или wkt, и расстояние в буфере
-------------- РЕЗУЛЬТАТЫ
источник
Поскольку я все еще не могу комментировать здесь, я добавляю этот ответ
SCW дать лучший ответ,
Но похоже на изменение функции
http://postgis.refractions.net/docs/ST_OffsetCurve.html
Теперь
'right'
параметр не нужен. Использование положительного расстояния создаст левую сторону, а отрицательное расстояние создаст правую сторонуТакже не требуется патч с моим postgis
источник