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

chuyển đổi định dạng hình học Postgres sang WKT

Bạn đã thử cái này chưa?

SELECT ST_AsText(your_geom_column) FROM your_table

Trong các ví dụ sau, tôi sẽ chỉ cho bạn một số cách để tuần tự hóa hình học của bạn - mẫu dữ liệu với hai điểm được mã hóa là 4326 (WGS84):

CREATE TEMPORARY TABLE tmp (geom GEOMETRY);
INSERT INTO tmp VALUES ('SRID=4326;POINT (1 2)'),
                       ('SRID=4326;POINT (2 4)');

Hình học dưới dạng WKB (mặc định):

SELECT geom FROM tmp;
                        geom                        
----------------------------------------------------
 0101000020E6100000000000000000F03F0000000000000040
 0101000020E610000000000000000000400000000000001040

Hình học dưới dạng WKTEWKT (EWKT =WKT với Hệ thống tham chiếu không gian rõ ràng):

SELECT ST_AsText(geom),ST_AsEWKT(geom) FROM tmp;
 st_astext  |      st_asewkt       
------------+----------------------
 POINT(1 2) | SRID=4326;POINT(1 2)
 POINT(2 4) | SRID=4326;POINT(2 4)

Trong trường hợp bạn thích GeoJSON ..

SELECT ST_AsGeoJSON(geom) FROM tmp;
             st_asgeojson             
--------------------------------------
 {"type":"Point","coordinates":[1,2]}
 {"type":"Point","coordinates":[2,4]}

.. hoặc thậm chí GML

SELECT ST_AsGML(geom) FROM tmp;
                                     st_asgml                                      
-----------------------------------------------------------------------------------
 <gml:Point srsName="EPSG:4326"><gml:coordinates>1,2</gml:coordinates></gml:Point>
 <gml:Point srsName="EPSG:4326"><gml:coordinates>2,4</gml:coordinates></gml:Point>

.. những người đam mê Google Earth cũng có niềm vui của họ! Hình học dưới dạng KML

SELECT ST_AsKML(geom) FROM tmp;
                   st_askml                    
-----------------------------------------------
 <Point><coordinates>1,2</coordinates></Point>
 <Point><coordinates>2,4</coordinates></Point>

Và danh sách được tiếp tục..! Trong PostGIS documentation có những cách ưa thích khác để nối tiếp các hình học.

Bản trình diễn:db<>fiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHÈN SQL mà không chỉ định cột. Điều gì xảy ra?

  2. PostgreSQL - truy vấn từ tập lệnh bash dưới dạng người dùng cơ sở dữ liệu 'postgres'

  3. Sử dụng PgBouncer Connection Pooler cho PostgreSQL với ClusterControl 1.8.2

  4. Chọn truy vấn có giới hạn bù quá chậm

  5. Chính xác thì CẤP SỬ DỤNG TRÊN SCHEMA làm gì?