PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana mengkonversi data poligon menjadi segmen garis menggunakan PostGIS

Umumnya, mengubah poligon menjadi garis mungkin tidak mudah karena ada tidak ada pemetaan satu-ke-satu dan berbagai elemen peta poligon ke string garis yang berbeda (cincin eksterior, cincin interior, dll.).

Mempertimbangkan itu, Anda perlu membagi masing-masing secara terpisah mengikuti kemungkinan pendekatan seperti ini:

SELECT ST_AsText( ST_MakeLine(sp,ep) )
FROM
   -- extract the endpoints for every 2-point line segment for each linestring
   (SELECT
      ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
      ST_PointN(geom, generate_series(2, ST_NPoints(geom)  )) as ep
    FROM
       -- extract the individual linestrings
      (SELECT (ST_Dump(ST_Boundary(geom))).geom
       FROM mypolygontable
       ) AS linestrings
    ) AS segments;

tergantung pada data poligon apa yang disimpan di mypolygontable , Anda mungkin ingin membuang tidak hanya batas (seperti di atas menggunakan ST_Boundary ) tetapi juga elemen lainnya. Kode di atas dengan gambaran yang lebih rinci diambil dari daftar pengguna postgis:Pisahkan poligon menjadi N string

Ada juga pendekatan umum untuk masalah yang dijelaskan di Meledakkan linestring atau poligon ke dalam vektor individu di PostGIS



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengelompokkan tanggal dengan bidang stempel waktu di Postgres?

  2. Cara membersihkan SQL mentah di Rails 4

  3. Menjalankan skrip sql dengan saling ketergantungan

  4. Nilai kesalahan tidak ada - masalah postgresql INSERT INTO

  5. Docker exec - tidak dapat memanggil postgres dengan variabel lingkungan