2010年6月4日 星期五

Mapguide_線上編修3_Oracle建立空間資料表

從前兩篇文章可以很清楚的暸解,若是想要實現線上編修的功能,搭配空間資料庫是最好的方式,而目前比較有在使用的空間資料庫有兩個,一個就是很多縣市政府都愛用的Oracle,另一個就是非常容易取得MS SQL(因為有免費版),那這篇主要就是要說明如何在Oracle上面建立含有空間資料的資料表。

建立的方式很簡單,分為三個步驟,你可以嘗試在SQL Plus上面輸入以下的語法,將可建立一個有一欄主鍵ID與空間資料欄位的資料表。

1. 建立空間表格

Create Table spatab(id Number primary key,name varchar2(32),spatial MDSYS.SDO_GEOMETRY);

2. 註冊空間表格至詮釋資料
insert into USER_SDO_GEOM_METADATA VALUES('spatab','spatial',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',0,20,0.005),MDSYS.SDO_DIM_ELEMENT('Y',0,20,0.005)),NULL);

3. 建立空間索引
create index spatial_idx on spatab(spatial) indextype is MDSYS.SPATIAL_INDEX;

上面三句語法可以依照自己的需求置換成你所需建立的表格名稱等等,以下是我在某一個專案建立時使用的。

Create Table TP_SW(OBJECTID Number primary key,spatial MDSYS.SDO_GEOMETRY);

insert into USER_SDO_GEOM_METADATA VALUES('TP_SW','spatial',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X',295500,318000,0.05),MDSYS.SDO_DIM_ELEMENT ('Y',2761000,2790000,0.005)),NULL);

create index TP_SW_SID on TP_SW(spatial) indextype is MDSYS.SPATIAL_INDEX;

建立完空間表格後,接下來就是資料匯入跟程式碼撰寫的工作了。

沒有留言:

張貼留言