oracle spatial
oracle spatial主要通過
sdo_geometry
來儲存空間資訊,主要有五個引數
sdo_gtype number
sdo_srid number
sdo_point sdo_point_type
sdo_elem_info mdsys.sdo_elem_info_array
sdo_ordinates mdsys.sdo_ordinate_array
sdo_gtype 是乙個由四個數字組成的數值型引數,形式為dltt
。其中,
d的取值為
2,3,4
分別代表所存空間實體的維度
l為乙個三維
lrs幾何實體定義了乙個線性參考度量維度,也就是說只有在三維或者四維的地理實體中才需要定義這個度量,對於沒有
lrs的地理實體,該值預設為0.
tt 主要用來定義地理實體的型別,現有的型別是從
00-07,08-99
為oracle
的保留字段。
未知的地理資料型別
單個的點
單條的線
單個的面
集合(可以包含除此型別之外的所有其他型別)
點集/多點
多條線多個面所以對現在常用的資料型別,2001表示乙個點,
2002
表示乙個面,
2003
表示乙個面。
每一列空間資料必須用來存放同一維度的資料。
sdo_srid 用來定義空間資料的投影資訊,如果為null
,表示沒有空間參照座標系,如果不為空,那麼必須是系統表
sdo_coord_ref_sys
中srid
列中的乙個值,也就是說必須是由
oracle
定義的某一種空間參考座標系,
srid
資訊必須與該錶定義的空間元資料的投影資訊一致。
4326,
wgs-84
空間參考係,座標單位是經緯度
54004,
world mercator
空間參考係,座標單位是公尺
sdo_point 用來定義點物件型別,屬性有三個(x,y,z
)均為數值型別,如果
sdo_elem_info
與sdo_ordinates
兩個欄位均為空,那麼sdo_point
內儲存的
x,y資訊就會被認為是乙個點型別的幾何實體,否則這個欄位會被系統自動忽略。
sdo_elem_info 這個字段儲存的資訊主要用來解釋儲存在sdo_ordinates中座標的屬性。欄位內共有三個引數,sdo_starting_offset
,sdo_etype
,sdo_interpretation。
sdo_starting_offset
表示sdo_ordinates
陣列中所存放元素座標的起點,如果
sdo_ordinates
陣列中存放了乙個元素,該值為
1。舉例說明,
sdo_ordinates
存放的地理資訊如下,
insert into cola_markets values(
10,'polygon_with_hole',
sdo_geometry(
2003, -- two-dimensional polygon
null,
null,
sdo_elem_info_array(1,1003,1, 19,2003,1), -- polygon with hole
sdo_ordinate_array(2,4, 4,3, 10,3, 13,5, 13,9, 11,13, 5,13, 2,11, 2,4,
7,5, 7,10, 10,10, 10,5, 7,5)));
sdo_ordinates陣列中存放的是乙個如下圖所示的多邊形,一共有兩個面狀幾何實體構成,第乙個幾何實體預設從第一位開始,第二個幾何實體從第
19個數字開始算起,所以
sdo_elem_info
陣列中的資訊如上所示,
sdo_elem_info_array(1,1003,1, 19,2003,1)
sdo_etype 與
sdo_interpretation共同確定幾何實體的詳細組成,描述的是sdo_ordinate_array中座標中的資訊。
sdo_etype
sdo_interpretation
代表含義
任意數值
表示不被oracle
支援的資料 點
原點型別
nn個點組成的點集 直線
有彎曲角度的線
1003,or2003
基礎面,每個邊都是直線型別
1003or2003
面,邊是由有彎曲的線構成的
1003or2003
矩形,給定左下角,右上角,兩個point
1003or2003
圓,由三個不同的點描述
n>1
混合線型,一條線由直線與曲線共同組成的
1005or2005
n>1
混合麵,由直線與曲線組成的面
sdo_ordinates 存放座標資訊的陣列
sdo_ordinate_array(10,10, 10,14, 6,10, 14,10)
oracle spatial空間型別建立
oracle spatial空間型別建立 使用oracle11g建立空間表資料,基於oracle spatial的儲存方式,通過這種儲存方式的幾何列shape的字段型別為mdsys.sdo geometry型別,個人覺得關於操作空間資料的sql語句來說,相交於postgresql ms sqlser...
Oracle Spatial 例項簡介
oracle spatial 例項簡介 oracle spatial 簡介 首先,oracle 支援自定義的資料型別,你可以用陣列,結構體或者帶有建構函式,功能函式的類來定義自己的物件型別。這樣的物件型別可以用於屬性列的資料型別,也可以用來建立物件表。而oracle spatial也正是基於此種特性...
Oracle spatial空間查詢的選擇度分析
接下來,我們來研究一下這個問題。建立表,並使用sdo geometry資料型別儲存向量資料。檢視表中記錄數 建立空間索引 create index tddcsde a3010 ix1 on tddcsde dltb20150705 shape indextype is mdsys spatial i...