MapInfo 數據支持Oracle空間數據庫存儲,在設計時,我們可以採用MapInfo Professional製作的表實現空間數據庫的設計。首先我們運行MapInfo Professional,從新建菜單中新建表,此時將有對話框對提示,我們勾選“打開新的地圖窗口”,點擊“創建”按鈕,此時彈出字段設計對話框,用戶可以按照數據表的設計,把字段一一添加,然後進行表的保存。
從“工具”菜單選擇工具管理器,此時將彈出對話框,在上面的列表中找到EasyLoader,勾選框勾上,確定後,從“工具”菜單就可以看到EasyLoader,打開後進行設置。
1、點擊Oracle Saptial進行服務器的設置。
2、點擊源表,選擇將要上傳的文件。
3、點週上載按鈕,上傳至服務器。
此時我們登錄服務器,就可以在Oracle的數據庫中看到上傳的表,此時的表又自動增加了一個“MI_Prinx”列,這個就是主鍵列,你可以根據設計需要把字段名改成相應的名字,比如說“ID”;
Oracle 支持自定義的數據類型,你可以用數組,結構體或者帶有構造函數,功能函數的類來定義自己的對象類型。這樣的對象類型可以用於屬性列的數據類型,也可以用來創建對象表。而Oracle Spatial也正是基於此種特性所開發的一套空間數據處理系統。
Spatial 的自定義數據類型有很多,都在MDSYS方案下,經常使用的是SDO_GEOMETRY類型。SDO_GEOMETRY表示一個幾何對象,可以是點、線、面、多點、多線、多面或混合對象。
Spatial 在此數據類型的基礎上,實現了R樹空間索引和四叉樹空間索引,還以sql函數的形式實現了多種空間分析功能。
Oracle Spatial 使用:
1、將SDO_GEOMETRY數據類型作爲數據表的一個列。
CREATE TABLE cola_markets (
mkt_id NUMBER PRIMARY KEY,
name VARCHAR2(32),
shape MDSYS.SDO_GEOMETRY);
2、填寫空間元數據。
INSERT INTO USER_SDO_GEOM_METADATA
VALUES (
'cola_markets',
'shape',
MDSYS.SDO_DIM_ARRAY( -- 20X20 grid
MDSYS.SDO_DIM_ELEMENT('X', 0, 20, 0.005),
MDSYS.SDO_DIM_ELEMENT('Y', 0, 20, 0.005)
),
NULL -- SRID
);
3、創建空間索引。
CREATE INDEX cola_spatial_idx
ON cola_markets(shape)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
至此,空間數據表的創建纔算正式完成。