관련 포스팅 

PostGIS : PostGIS Setting Script  http://ngee.tistory.com/629

PostGIS : Create Geospatial Table :  http://ngee.tistory.com/631

PostGIS : Insert Geospatial Data into Table :  http://ngee.tistory.com/632

PostGIS : Select Geospatial Data from Table :  http://ngee.tistory.com/633

PostGIS : Delete Geometry Column in Geospatial Table :  http://ngee.tistory.com/635



PostGIS를 활용하여 공간정보를 저장할 수 있는 데이터베이스 테이블을 만들어봅시다. 

총 2단계에 걸쳐서 공간정보 테이블을 만들 수 있는데요.


1단계 : 걍 테이블을 생성한다.

2단계 : 공간정보가 저장될 컬럼(column)을 추가한다. 


그럼 각 단계에 대해서 간단하게 예제로 확인해보시죠.

위 그림에서 노란색 칠하지 않은 SQL 문은 1단계에 해당하는 것이구요. 

노란색 칠한 부분은 2단계에 해당하는 부분입니다. 


1단계는 그냥 테이블을 생성하는 것과 동일하기 때문에 설명을 생략하도록 하구요.

2단계에 대해서만 조금 정리해보겠습니다. 


PostgreSQL을 설치하고 PostGIS extention을 추가하고 데이터베이스에 적용시키면 여러 함수를 사용할 수 있는데요. 

여기서는 공간정보를 저장하기 위한 컬럼을 생성할 때 사용하는 함수인 AddGeometryColumn에 대해서만 이야기할꺼에요.


AddGeometryColumn은 다음과 같은 인자를 받아서 공간정보를 저장할 수 있는 컬럼을 테이블에 추가해줍니다. 


AddGeometryColumn ( tableName, geospatialColumnName, EPSG_ID, geospatialDataType, dimension) 

AddGeometryColumn ( schemaName, tableName, geospatialColumnName, EPSG_ID, geospatialDataType, dimension)

AddGeometryColumn ( catalogName, schemaName, tableName, geospatialColumnName, EPSG_ID, geospatialDataType, dimension)


위와 같은 인자를 받아서 처리해줍니다. 어떤 처리요??? 공간정보가 저장될 수 있는 컬럼을 테이블에 추가해주는 처리요.


그럼 예제로 사용된 SQL 문만 확인해보죠.

SELECT AddGeometryColumn('geotest', 'my_geom',  3857, 'POLYGON', 2);

geotest라는 테이블에 my_geom 이라는 이름을 가지는 공간정보 컬럼을 추가합니다. EPSG 번호는 3857이구요. 저장할 공간정보의 타입은 폴리곤입니다. 2차원 데이터구요.


쉽네요!! 그럼 위에 그림에 있는 SQL만 아래 붙여넣고 포스팅을 마칩니다. 


CREATE TABLE geotest

(

  gid int NOT NULL,

  description text,

  CONSTRAINT geotest_pkey PRIMARY KEY (gid)

)

WITH (

  OIDS=FALSE

);

ALTER TABLE geotest

  OWNER TO postgres;


SELECT AddGeometryColumn('geotest', 'my_geom',  3857, 'POLYGON', 2);

+ Recent posts