관련 포스팅 

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를 설정하고, 

함수 AddGeometryColumn(....)를 이용해서 평범한 테이블에 공간정보를 저장할 수 있는 컬럼을 추가했죠.


이번 포스팅에서는 추가한 컬럼에 어떻게 데이터를 입력할 것인가에 대한 내용을 다룹니다.

가장 기본적인 것은 Text로 작성된 공간정보를 변환하여 저장하는 것입니다. 


이외에도 여러 방법이 존재하지만, 그건 나중에 시간이 나면 정리하구요. 

이번에는 Text로 작성된 공간정보를 변환하는 함수인 ST_GeomFromText(....) 에 대해서만 간단하게 살펴보겠습니다. 


ST_GeomFromText 함수 인자를 받아서 처리를 하는데요. 아래에 어떤 인자를 받고 어떤 값을 return 하는지 나와있습니다. 


geometry ST_GeomFromText( text WKT );

geometry ST_GeomFromText( text WKT, integer srid );


text 타입의 WKT를 필수로 입력받고, interger 타입의 srid를 선택적으로 입력받는 것을 볼 수 있습니다. srid 는 EPSG 번호라고 생각하시면 됩니다. 

그럼 WKT에 대해서 알아봐야 하는데요. WKT는 Well-Known Text representaion의 약자입니다. 


WKT에 대한 자세한 내용은 위키에 잘 나와 있습니다. 다음 주소를 참고해주세요. http://en.wikipedia.org/wiki/Well-known_text


그럼 앞선 포스팅에서 생성한 공간정보를 저장할 수 있는 테이블의 구조를 간단하게 다시 확인하고, SQL문으로 WKT를 데이터베이스에 입력해봅시다.

Table geotest 컬럼 리스트

geotest 테이블은 3개의 컬럼을 가지고 있습니다. gid, description, my_geom 입니다.


my_geom은 Polygon 형태를 저장할 수 있는 컬럼입니다. 

그럼 Polygon을 WKT로 작성해서 ST_GeomFromText(...)함수를 통해 입력해보죠. 다음 예제를 확인해주세요.


INSERT INTO geotest(gid, description, my_geom)

    VALUES (1, 'desc001', ST_GeomFromText('POLYGON((131060 33589, 131060 33833, 131319 33833, 131319 33589, 131060 33589))',3857) );


ST_GeomFromText 함수에 2개 인자를 입력했습니다. 일단 text 타입의 WKT, 다음은 3857로 EPSG:3857를 의미합니다. 즉 WKT로 작성된 숫자도 EPSG:3857의 좌표여야 하죠.

위 숫자는 예시로 작성한 것이니깐 정확한 위치로 보시면 안되요.


어찌대뜬 입력이 완료되고 테이블을 확인해보면 아래와 같습니다. 


ST_GeomFromText(...)를 통해 공간정보를 테이블에 입력하는 방법 정리를 마칩니다 :-)



+ Recent posts