sql >> Database teknologi >  >> RDS >> PostgreSQL

konverter Postgres geometriformat til WKT

Har du prøvet dette?

VÆLG ST_AsText(din_geom_kolonne) FRA din_tabel 

I de følgende eksempler vil jeg vise dig et par måder at serialisere dine geometrier på - dataeksempel med to punkter kodet som 4326 (WGS84):

OPRET MIDLERTIDIG TABEL tmp (geom GEOMETRY);INSERT INTO tmp VALUES ('SRID=4326;POINT (1 2)'), ('SRID=4326;POINT (2 4)'); 

Geometrier som WKB (standard):

VÆLG geom FROM tmp; geom -------------------------------------------------- --- 0101000020E61000000000000000000F03F00000000000000040 0101000020E610000000000000000000004000000000000000000000 

Geometrier som WKT og EWKT (EWKT =WKT med et eksplicit Spatial Reference System):

SELECT ST_AsText(geom),ST_AsEWKT(geom) FRA tmp; st_astext | st_asewkt ------------+---------------------------- PUNKT(1 2) | SRID=4326;POINT(1 2) POINT(2 4) | SRID=4326;POINT(2 4)

Hvis du har lyst til GeoJSON ..

VÆLG ST_AsGeoJSON(geom) FRA tmp; st_asgeojson -------------------------------------------- {"type":"Punkt","koordinater ":[1,2]} {"type":"Punkt","koordinater":[2,4]} 

.. eller endda GML

VÆLG ST_AsGML(geom) FRA tmp; st_asgml -------------------------------------------------- ---------------------------------- 1,2 2,4 

.. Google Earth-entusiasterne har også det sjovt! Geometrier som KML

VÆLG ST_AsKML(geom) FRA tmp; st_askml ---------------------------------------------------- 1,2 2,4 

Og listen fortsætter..! I PostGIS-dokumentationen der er andre smarte måder at serialisere geometrier på.

Demo:db<>fiddle




  1. Ret MySQL-advarsel 1287:'BINARY expr' er forældet og vil blive fjernet i en fremtidig udgivelse

  2. Sådan tilføjes Meridiem-indikatoren (AM/PM) til en tidsværdi i Oracle

  3. Hvordan caster jeg en streng til heltal og har 0 i tilfælde af fejl i castet med PostgreSQL?

  4. Klon ORACLE_HOME