PostGIS - GIS objects

test-gis-obj.sql
-- 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)'))));

 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer