❤️将Postgres几何格式转换为WKT❤️

该文章讨论了如何在Postgres数据库中将存储为特定格式的多边形几何体列转换为Well-Known Text (WKT)格式。通过使用ST_AsText函数,可以将几何列转换为易于读取的WKT表示,从而简化数据操作。示例还展示了如何转换为其他格式,如WKB、GeoJSON、GML和KML。
摘要由CSDN通过智能技术生成

stackoverflow上看见一篇文章,记录下:❤️原文地址❤️

问题

我有一个Postgres表,它将多边形几何体以特定的格式存储在一列中,类似这样-

0103000020E61000000100000004000000B8627F336B1554405DD602FFA2733A40B8627FA7601554403851F8EBC7723A40B8627FC38F15544036D539E90B733A40B8627F336B1554405DD602FFA2733A40

我知道如何使用 ST_AsText 将这个值转换为WKT,这将得到多边形(Lat Long)。但我想把整列转换成WKT格式。

如何做到这一点?

谢谢!

回答
你试过这个吗?

SELECT ST_AsText(your_geom_column) FROM your_table

在下面的示例中,我将向您展示几种序列化几何图形的方法—两个点编码为4326(WGS84)的数据示例:

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

几何图形为 WKB (默认):

SELECT geom FROM tmp;

                        geom                        
----------------------------------------------------
 0101000020E6100000000000000000F03F0000000000000040
 0101000020E610000000000000000000400000000000001040

几何图形如 WKT 和 EWKT (带空间参考系的WKT):

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)

如果你喜欢的话。。

GeoJSON

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

… 甚至

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>

… 谷歌地球的爱好者也有他们的乐趣!几何图形如

KML

SELECT ST_AsKML(geom) FROM tmp;

                   st_askml                    
-----------------------------------------------
 <Point><coordinates>1,2</coordinates></Point>
 <Point><coordinates>2,4</coordinates></Point>

❤️原文地址❤️

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值