PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

конвертирайте геометричния формат на Postgres в 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 (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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изтриването на база данни трябва ли да се извършва не при никаква транзакция?

  2. Изчислете броя на едновременните събития в SQL

  3. SQL Попълване на таблица с произволни данни

  4. Как да използвам ANY вместо IN в клауза WHERE с Rails?

  5. Заредете дъмпа на Postgres след докер-композиране