oracle 空间数据字段,Oracle spatial创建空间数据的字段详解
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的保留字段。
00
未知的地理數據類型
01
單個的點
02
單條的線
03
單個的面
04
集合(可以包含除此類型之外的所有其他類型)
05
點集/多點
06
多條線
07
多個面
所以對現在常用的數據類型,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
代表含義
0
任意數值
表示不被Oracle支持的數據
1
1
點
1
0
原點類型
1
n
n個點組成的點集
2
1
直線
2
2
有彎曲角度的線
1003,or2003
1
基礎面,每個邊都是直線類型
1003or2003
2
面,邊是由有彎曲的線構成的
1003or2003
3
矩形,給定左下角,右上角,兩個point
1003or2003
4
圓,由三個不同的點描述
4
n>1
混合線型,一條線由直線與曲線共同組成的
1005or2005
n>1
混合面,由直線與曲線組成的面
SDO_ORDINATES???存放坐標信息的數組
SDO_ORDINATE_ARRAY(10,10,?10,14,?6,10,?14,10)
轉載自:https://blog.csdn.net/MomoL1911/article/details/49072343
總結
以上是生活随笔為你收集整理的oracle 空间数据字段,Oracle spatial创建空间数据的字段详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle怎么算开始一个会话,orac
- 下一篇: oracle11g 读写,oracle1