sql >> データベース >  >> RDS >> PostgreSQL

Postgresジオメトリ形式をWKTに変換します

    これを試しましたか?

    SELECT ST_AsText(your_geom_column) FROM your_table
    

    次の例では、ジオメトリをシリアル化するいくつかの方法を示します-4326(WGS84)としてエンコードされた2つのポイントを持つデータサンプル:

    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 (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 Earthの愛好家も楽しんでいます! KMLとしてのジオメトリ

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

    そして、リストは続きます..! PostGIS documentation ジオメトリをシリアル化する他の素晴らしい方法があります。

    デモ:db<>fiddle




    1. データベースのセキュリティ-転送中および保存中のバックアップ暗号化

    2. SQLServerで未使用の最小数を見つける

    3. 最初の実行時にsqliteデータベースをロードできません

    4. コミットされたトランザクションをロールバックする