사전 작업으로 SDM 1.6.x 로 작업되어 있는것을 1.7.x로 마이그레이션 하였습니다.
- Tibero 작업 내용을 소개하고자합니다.
티베로는 6.x 버전을 사용했구요. 올챙이 베이스는 1.7.3b4입니다.
티베로 메뉴얼은
https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20150504-000001/tibero_spatial/ch_01.html 을 참고합니다.
티베로를 설치하면 SYSGIS 스키마가 생기고 거기에 공간 데이터를 생성 조회할 수있습니다.
예를 들어 공간 데이터 정보가 있는 컬럼은 SYSGIS.GEOMETRY_COLUMNS_BASE 테이블과 SYSGIS.SPATIAL_REF_SYS_BASE 입니다.
이 두 테이블을 조회하면 기존 테이블이 공간테이블인지, 컬럼인지를 조회할 수가 있습니다.
공간 테이블 저장과 공간인덱스 생성은 여기(https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20150504-000001/tibero_spatial/ch_03.html)를 참조합니다.
공간테이블 만들고 인덱스 생성한 후에 프로시저를 호출해 줘야 합니다.(????)
여기까지 하면 기존 다른 디비와 크게 다를것이 없습니다.
Shape 파일 임포트는 http://geeps.krihs.re.kr/adminzone/service_page 에서 다운로드 받은 파일을 임포트 하였습니다.
SELECT SDM_GID, OPERT_DE, BAS_EMP_PO, GRP_ID, MVM_RES_CD, BAS_AR, BAS_RSD_PO, CTP_KOR_NM, SIG_CD, NTFC_DE, SIG_KOR_NM, OPE_MAN_ID, MVMN_DE, BAS_SUB_ID, MVMN_RESN, ID, REQST_SN, BAS_ID, BAS_MGT_SN, THE_GEOM, BAS_JUM_PO, EMD_CD
FROM SYSGIS.TL_KODIS_BAS_2015_03;
위의 데이터를 임포트하고 다음의 작업을 해줘야합니다.
-- 1) 공간 인덱스 생성하기
CREATE INDEX RT_IDX_KODIS_BAS ON TL_KODIS_BAS_2015_03__4326(THE_GEOM) RTREE;
-- 2) 프라이머리 키 생성하기
ALTER TABLE TL_KODIS_BAS_2015_03
ADD CONSTRAINT TL_KODIS_BAS_2015_03_PK PRIMARY KEY (ID) ;
-- 3) 공간컬럼 등록하기
call SYSGIS.REGISTER_SPATIAL_REF_SYS(4326,'hangum',4326,'test');
CALL SYSGIS.REGISTER_GEOMETRY_COLUMNS(
'SYSGIS.TL_KODIS_BAS_2015_03'
,'THE_GEOM'
, 102
, 101);
안녕하세요... 여쭤볼게 있어서 문의드립니다...
답글삭제1. 테이블 생성
CREATE TABLE TEST (ID INTEGER PRIMARY KEY, GEOM GEOMETRY);
//2. 공간인덱스 생성
CREATE INDEX RT_IDX_GIS ON TEST(GEOM) RTREE;
//3. 공간컬럼 등록하기.
//3.1 투영목록에 EPSG 4326 추가
call SYSGIS.REGISTER_SPATIAL_REF_SYS(4326,'epsg',4326,'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]')
//3.2 지오메트리 컬럼 추가.
call SYSGIS.REGISTER_GEOMETRY_COLUMNS('SYSGIS.TEST', 'GEOM', 0, 4326);
이렇게 하고 난 뒤에
insert into test(geom, id)
values(ST_POINTFROMTEXT('POINT(127 71)',4326) ,1);
해봤는데도
select ST_SRID(GEOM) from test
또는
SELECT st_srid(ST_PointFromText('POINT(171.064544 42.28787)', 4326) ) from dual;
모두 4326이 아닌 101이 나오는 이유가 뭘까요? ㅠㅠ 알려주세요.
저도 오래되어서 잘 모르겠네요.
삭제티베로 q&a에 질의해 보시면 좋겠습니다.
죄송합니다.