将Postgres几何格式转换为WKT

J. *_*Doe 1 postgresql postgis

我有一个Postgres表,它以一种特定的格式将多边形几何存储在其中一列中,如下所示:

0103000020E61000000100000004000000B8627F336B1554405DD602FFA2733A40B8627FA7601554403851F8EBC7723A40B8627FC38F15544036D539E90B733A40B8627F336B1554405DD602FFA2733A40
Run Code Online (Sandbox Code Playgroud)

我知道如何将这个单一值转换为WKT,ST_AsText这将给我POLYGON((Lat Long))。但是我想将整列转换为WKT格式。

如何实现呢?

谢谢!

Jim*_*nes 6

你有尝试过吗?

SELECT ST_AsText(your_geom_column) FROM your_table
Run Code Online (Sandbox Code Playgroud)

例:

CREATE TEMPORARY TABLE tmp (geom GEOMETRY);
INSERT INTO tmp VALUES (ST_GeomFromText('POINT (1 2)')),
                       (ST_GeomFromText('POINT (2 4)'));
Run Code Online (Sandbox Code Playgroud)

几何形式为EWKT

db=# SELECT geom FROM tmp;
                    geom                    
--------------------------------------------
 0101000000000000000000F03F0000000000000040
 010100000000000000000000400000000000001040
Run Code Online (Sandbox Code Playgroud)

几何形状为WKT

db=# SELECT ST_AsText(geom) FROM tmp;
 st_astext  
------------
 POINT(1 2)
 POINT(2 4)
Run Code Online (Sandbox Code Playgroud)

如果您喜欢GeoJSON ..

db=# SELECT ST_AsGeoJSON(geom) FROM tmp;    
             st_asgeojson             
--------------------------------------
 {"type":"Point","coordinates":[1,2]}
 {"type":"Point","coordinates":[2,4]}
Run Code Online (Sandbox Code Playgroud)

..甚至是GML

db=# SELECT ST_AsGML(geom) FROM tmp;    
                           st_asgml                            
---------------------------------------------------------------
 <gml:Point><gml:coordinates>1,2</gml:coordinates></gml:Point>
 <gml:Point><gml:coordinates>2,4</gml:coordinates></gml:Point>
Run Code Online (Sandbox Code Playgroud)