oracle 空间数据字段,Oracle spatial创建空间数据的字段详解
Oracle?spatial
Oracle?spatial主要通過sdo_geometry來儲(chǔ)存空間信息,主要有五個(gè)參數(shù)
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???是一個(gè)由四個(gè)數(shù)字組成的數(shù)值型參數(shù),形式為dltt。其中,
d的取值為2,3,4分別代表所存空間實(shí)體的維度
l為一個(gè)三維LRS幾何實(shí)體定義了一個(gè)線性參考度量維度,也就是說只有在三維或者四維的地理實(shí)體中才需要定義這個(gè)度量,對(duì)于沒有LRS的地理實(shí)體,該值默認(rèn)為0.
tt?主要用來定義地理實(shí)體的類型,現(xiàn)有的類型是從00-07,08-99為Oracle的保留字段。
00
未知的地理數(shù)據(jù)類型
01
單個(gè)的點(diǎn)
02
單條的線
03
單個(gè)的面
04
集合(可以包含除此類型之外的所有其他類型)
05
點(diǎn)集/多點(diǎn)
06
多條線
07
多個(gè)面
所以對(duì)現(xiàn)在常用的數(shù)據(jù)類型,2001表示一個(gè)點(diǎn),2002表示一個(gè)面,2003表示一個(gè)面。
每一列空間數(shù)據(jù)必須用來存放同一維度的數(shù)據(jù)。
SDO_SRID???用來定義空間數(shù)據(jù)的投影信息,如果為null,表示沒有空間參照坐標(biāo)系,如果不為空,那么必須是系統(tǒng)表SDO_COORD_REF_SYS中SRID列中的一個(gè)值,也就是說必須是由Oracle定義的某一種空間參考坐標(biāo)系,SRID信息必須與該表定義的空間元數(shù)據(jù)的投影信息一致。
4326,WGS-84空間參考系,坐標(biāo)單位是經(jīng)緯度
54004,World?Mercator空間參考系,坐標(biāo)單位是米
SDO_POINT??用來定義點(diǎn)對(duì)象類型,屬性有三個(gè)(X,Y,Z)均為數(shù)值類型,如果SDO_ELEM_INFO與SDO_ORDINATES兩個(gè)字段均為空,那么SDO_POINT內(nèi)儲(chǔ)存的X,Y信息就會(huì)被認(rèn)為是一個(gè)點(diǎn)類型的幾何實(shí)體,否則這個(gè)字段會(huì)被系統(tǒng)自動(dòng)忽略。
SDO_ELEM_INFO???這個(gè)字段存儲(chǔ)的信息主要用來解釋存儲(chǔ)在SDO_ORDINATES中坐標(biāo)的屬性。字段內(nèi)共有三個(gè)參數(shù),SDO_STARTING_OFFSET,SDO_ETYPE,SDO_INTERPRETATION。
SDO_STARTING_OFFSET表示SDO_ORDINATES數(shù)組中所存放元素坐標(biāo)的起點(diǎn),如果SDO_ORDINATES數(shù)組中存放了一個(gè)元素,該值為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數(shù)組中存放的是一個(gè)如下圖所示的多邊形,一共有兩個(gè)面狀幾何實(shí)體構(gòu)成,第一個(gè)幾何實(shí)體默認(rèn)從第一位開始,第二個(gè)幾何實(shí)體從第19個(gè)數(shù)字開始算起,所以SDO_ELEM_INFO數(shù)組中的信息如上所示,
SDO_ELEM_INFO_ARRAY(1,1003,1,?19,2003,1)
SDO_ETYPE?與SDO_INTERPRETATION共同確定幾何實(shí)體的詳細(xì)組成,描述的是SDO_ORDINATE_ARRAY中坐標(biāo)中的信息。
SDO_ETYPE
SDO_INTERPRETATION
代表含義
0
任意數(shù)值
表示不被Oracle支持的數(shù)據(jù)
1
1
點(diǎn)
1
0
原點(diǎn)類型
1
n
n個(gè)點(diǎn)組成的點(diǎn)集
2
1
直線
2
2
有彎曲角度的線
1003,or2003
1
基礎(chǔ)面,每個(gè)邊都是直線類型
1003or2003
2
面,邊是由有彎曲的線構(gòu)成的
1003or2003
3
矩形,給定左下角,右上角,兩個(gè)point
1003or2003
4
圓,由三個(gè)不同的點(diǎn)描述
4
n>1
混合線型,一條線由直線與曲線共同組成的
1005or2005
n>1
混合面,由直線與曲線組成的面
SDO_ORDINATES???存放坐標(biāo)信息的數(shù)組
SDO_ORDINATE_ARRAY(10,10,?10,14,?6,10,?14,10)
轉(zhuǎn)載自:https://blog.csdn.net/MomoL1911/article/details/49072343
總結(jié)
以上是生活随笔為你收集整理的oracle 空间数据字段,Oracle spatial创建空间数据的字段详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle怎么算开始一个会话,orac
- 下一篇: oracle11g 读写,oracle1