PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách chuyển đổi dữ liệu đa giác thành các đoạn đường bằng PostGIS

Nói chung, việc chuyển đổi đa giác thành dòng có thể không đơn giản vì có không có ánh xạ 1-1 và các yếu tố khác nhau của đa giác ánh xạ tới các chuỗi đường khác nhau (vòng ngoài, vòng trong, v.v.).

Xem xét điều đó, bạn sẽ cần phải chia từng phương pháp riêng biệt theo cách tiếp cận có thể có như sau:

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;

tùy thuộc vào dữ liệu đa giác nào được lưu trữ trong mypolygontable , bạn có thể không chỉ muốn kết xuất ranh giới (như ở trên bằng cách sử dụng ST_Boundary ) mà còn các yếu tố khác. Đoạn mã ở trên với tổng quan chi tiết hơn được lấy từ danh sách người dùng postgis: Tách một đa giác thành N chuỗi dòng

Cũng có một cách tiếp cận chung cho vấn đề được giải thích trong Giải thích một chuỗi dòng hoặc đa giác thành các vectơ riêng lẻ trong 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. Phát hiện các thay đổi cột trong trình kích hoạt cập nhật postgres

  2. PostgreSQL Autoincrement

  3. tổng và tạo chuỗi không hoạt động trong postgresql

  4. Tại sao mục trình tự Postgres vẫn tăng lên ngay cả khi việc tạo đối tượng không thành công?

  5. LỖI PostgreSQL:42P01:quan hệ [Bảng] không tồn tại