您的位置:首頁技術文章
文章詳情頁

Oracle Spatial 簡介

瀏覽:6日期:2023-11-15 19:07:04
Oracle Spatial 簡介: 首先,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_idxON cola_markets(shape)INDEXTYPE IS MDSYS.SPATIAL_INDEX;至此,空間數據表的創建才算正式完成;。4、插入空間數據??臻g數據的插入要INSERT INTO cola_markets VALUES( 2, 'cola_b', MDSYS.SDO_GEOMETRY( 2003,; -- 2-dimensional polygon NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1), -- one polygon (exterior polygon ring) MDSYS.SDO_ORDINATE_ARRAY(5,1, 8,1, 8,6, 5,7, 5,1) ));5、空間分析查詢示例。-- Return the topological difference of two geometries.SELECT SDO_GEOM.SDO_DIFFERENCE(c_a.shape, m.diminfo, c_c.shape, m.diminfo) FROM cola_markets c_a, cola_markets c_c, user_sdo_geom_metadata m WHERE m.table_name = 'COLA_MARKETS' AND m.column_name = 'SHAPE' AND c_a.name = 'cola_a' AND c_c.name = 'cola_c';八風不動2004年11月23日涂鴉于大連
標簽: Oracle 數據庫
国产综合久久一区二区三区