【问题标题】:convert Postgres geometry format to WKT将 Postgres 几何格式转换为 WKT
【发布时间】:2018-09-29 00:29:24
【问题描述】:

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

0103000020E61000000100000004000000B8627F336B1554405DD602FFA2733A40B8627FA7601554403851F8EBC7723A40B8627FC38F15544036D539E90B733A40B8627F336B1554405DD602FFA2733A40

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

如何做到这一点?

谢谢!

【问题讨论】:

    标签: sql postgresql postgis


    【解决方案1】:

    你试过了吗?

    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
    

    WKTEWKT 的几何图形(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>
    

    .. Google 地球爱好者也乐在其中!几何为KML

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

    名单还在继续……!在PostGIS documentation 中还有其他奇特的方式来序列化几何。

    演示:db&lt;&gt;fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 2021-11-07
      • 2023-03-26
      相关资源
      最近更新 更多