Estou procurando uma maneira de criar os chamados buffers unilaterais ou linhas paralelas no PostGIS. Exemplo: 1. buffer, 2. um lado, 3. ambos os lados
Encontrei alguma discussão na lista de discussão de 2009 e informações que foram implementadas no GEOS , mas nada sobre o status atual do PostGIS.
Caso a função ainda não esteja implementada, você conhece alguma solução alternativa? É possível cortar um lado de um buffer normal?
postgis
polyline-creation
buffer
parallel-lines
underdark
fonte
fonte
Respostas:
Os buffers unilaterais apropriados deveriam ter caído em 1,5 , mas parece-me que, embora os estilos aterrissem, o lado não o alcançou . No entanto, existe um conjunto de patches atual que expõe
GEOSSingleSidedBuffer
e executa o buffer unilateral conforme o esperado , sob o nomeST_OffsetCurve
; veja mais detalhes no ticket # 413 . Em uso:fonte
Este exemplo cria dois polígonos em ambos os lados de uma cadeia de linhas. Requer PostGIS 1.5 ou superior. Não tenho certeza de como ele irá lidar com as linhas que se cruzam.
Emite:
O código funciona da seguinte maneira:
Isso poderia ser melhorado para lidar com linhas de auto-cruzamento no futuro.
fonte
Essa modificação cria duas cadeias de linhas paralelas. Requer PostGIS 1.5 ou superior.
geometria ou wkt necessária e distância no buffer
-------------- RESULTADOS
fonte
Como ainda não posso comentar aqui, adiciono esta resposta
O ACS dá a melhor resposta,
Mas parece que a função muda
http://postgis.refractions.net/docs/ST_OffsetCurve.html
Agora o
'right'
parâmetro não é necessário. Usar a distância positiva criará o lado esquerdo e a distância negativa criará o lado direitoTambém não é necessário nenhum patch com meus postgis
fonte