-- Reference: https://postgis.net/docs/manual-2.0/using_postgis_dbmanagement.html -- OpenGIS objects SELECT ST_GeomFromText('POINT(0 0)',0); SELECT ST_GeomFromText('LINESTRING(0 0,1 1,1 2)',0); SELECT ST_GeomFromText('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))',0); SELECT ST_GeomFromText('MULTIPOINT(0 0,1 2)',0); SELECT ST_GeomFromText('MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))',0); SELECT ST_GeomFromText('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))',0); SELECT ST_GeomFromText('GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))',0); -- Well-Known Text (WKT) and Well-Known Binary (WKB) form SELECT ST_AsText(ST_GeomFromText('POINT(0 0)',0)); SELECT ST_AsBinary(ST_GeomFromText('POINT(0 0)',0)); create table gis ( city text, lon numeric, lat numeric, wkt text, wkb bytea ); insert into gis (city,lon,lat) values ('Hong Kong',114.109497,22.396427); alter table gis add column geom geometry(POINT,4326); update gis set geom = ST_SETSRID(ST_POINT(lon,lat),4326); select geom from gis; update gis set wkt = ST_AsText(geom); update gis set wkb = ST_AsBinary(geom); update gis set geom = ST_GeomFromWKB(wkb,4326); select geom from gis; update gis set geom = ST_GeomFromText(wkt,4326); select geom from gis; update gis set geom = ST_GeometryFromText(wkt,4326); select geom from gis; drop table gis; -- PostGIS EWKT and EWKB SELECT 'POINT(0 0 0)'::geometry; SELECT 'SRID=32632;POINT(0 0)'::geometry; SELECT 'POINTM(0 0 0)'::geometry; SELECT 'POINT(0 0 0 0)'::geometry; SELECT 'SRID=4326;MULTIPOINTM(0 0 0,1 2 1)'::geometry; SELECT 'MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))'::geometry; SELECT 'POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))'::geometry; SELECT 'MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))'::geometry; SELECT 'GEOMETRYCOLLECTIONM( POINTM(2 3 9), LINESTRINGM(2 3 4, 3 4 5) )'::geometry; SELECT 'MULTICURVE( (0 0, 5 5), CIRCULARSTRING(4 0, 4 4, 8 4) )'::geometry; SELECT 'POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'::geometry; SELECT 'TRIANGLE ((0 0, 0 9, 9 0, 0 0))'::geometry; SELECT 'TIN( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)) )'::geometry; select ST_AsEWKT(ST_GeomFromEWKB(ST_AsEWKB(ST_GeomFromEWKT('POINT(1 2 3)')))); |