Oracle spatial建立空間資料的字段詳解

2021-07-05 18:51:03 字數 2690 閱讀 5115

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...