Saya mencari cara untuk membuat apa yang disebut buffer satu sisi atau garis paralel di PostGIS. Contoh: 1. buffer, 2. satu sisi, 3. kedua sisi
Saya telah menemukan beberapa diskusi di milis dari 2009 dan informasi bahwa itu telah diimplementasikan dalam GEOS , tetapi tidak ada yang mengenai status PostGIS saat ini.
Jika fungsi ini belum diimplementasikan, apakah Anda tahu ada solusi? Apakah mungkin untuk memotong satu sisi buffer normal?
postgis
polyline-creation
buffer
parallel-lines
underdark
sumber
sumber
Jawaban:
Buffer satu sisi yang benar seharusnya telah mendarat di 1,5 , tetapi tampak bagi saya bahwa sementara gaya memang mendarat, sisi tidak membuatnya masuk. Namun ada patchset saat ini yang mengekspos
GEOSSingleSidedBuffer
dan melakukan buffer satu sisi seperti yang diharapkan , dengan namaST_OffsetCurve
; lihat latar belakang lebih lanjut di tiket # 413 . Digunakan:sumber
Sampel ini membuat dua poligon di kedua sisi linestring. Itu membutuhkan PostGIS 1.5 atau lebih tinggi. Saya tidak yakin seberapa baik itu akan mengatasi garis yang melintasi diri mereka sendiri.
Ini menghasilkan:
Kode bekerja dengan cara berikut:
Ini dapat ditingkatkan untuk mengatasi garis penyilangan diri di masa depan.
sumber
Modifikasi ini menciptakan dua linestring paralel. Itu membutuhkan PostGIS 1.5 atau lebih tinggi.
diperlukan geometri atau wkt, dan jarak dalam buffer
-------------- HASIL
sumber
Karena saya masih tidak bisa berkomentar di sini, saya menambahkan jawaban ini
SCW memberikan jawaban terbaik,
Tetapi sepertinya fungsinya mengubah
http://postgis.refractions.net/docs/ST_OffsetCurve.html
Sekarang
'right'
parameternya tidak perlu. Menggunakan jarak positif akan membuat sisi kiri dan jarak negatif akan membuat sisi kananJuga tidak ada tambalan yang diperlukan dengan postgis saya
sumber