久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle Spatial基本操作是怎樣的

137次閱讀
沒有評論

共計 4635 個字符,預計需要花費 12 分鐘才能閱讀完成。

Oracle Spatial 基本操作是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Spatial 主要通過元數據表、空間數據字段(即 sdo_Geometry 字段)和空間索引來管理空間數據,并在此基礎上提供一系列空間查詢和空間分析的程序包,讓用戶進行更深層次的 GIS 應用開發。Oracle
Spatial 使用空間字段 sdo_Geometry 存儲空間數據,用元數據表來管理具有 sdo_Geometry 字段的空間數據表,并采用 R 樹索引和四叉樹索引技術來提高空間查詢和空間分析的速度。

1、元數據表說明

Oracle
Spatial 的元數據表存儲了有空間數據的數據表名稱、空間字段名稱、空間數據的坐標范圍、坐標系以及坐標維數說明等信息。用戶必須通過元數據表才能知道 Oracle 數據庫中是否有 Oracle
Spatial 的空間數據信息。通過元數據視圖(USER_SDO_GEOM_METADATA)訪問元數據表。元數據視圖的基本定義為:

2、空間字段解析

Oracle
Spatial 的空間數據都存儲在空間字段 sdo_Geometry 中,理解 sdo_Geometry 是編寫 Oracle
Spatial 程序的關鍵。sdo_Geometry 是按照 Open GIS 規范定義的一個對象,其原始的創建方式如下所示。


sdo_Gtype

是一個 NUMBER 型的數值,用來定義存儲幾何對象的類型。sdo_Gtype 是一個 4 個數字的整數,其格式為 dltt,其中 d 表示幾何對象的維數;l 表示三維線性參考系統中的線性參考值,當 d 為 3 維或者 4 維時需要設置該值,一般情況下為空;tt 為幾何對象的類型,Oracle
Spatial 定義了 7 種類型的幾何類型,目前,tt 使用了 00 到 07,其中 08 到 99 是 Oracle
Spatial 保留的數字,以備將來幾何對象擴展所用。


sdo_Srid

sdo_Srid 也是一個 NUMBER 型的數值,它用于標識與幾何對象相關的空間坐標系。如果 sdo_Srid 為空(null),則表示沒有坐標系與該幾何對象相關;如果該值不為空,則該值必須為 MDSYS.CS_SRS 表中 SRID 字段的一個值,在創建含有幾何對象的表時,這個值必須加入到描述空間數據表元數據的 USER_SDO_GEOM_METADATA 視圖的 SRID 字段中。對于我們通常使用國際標準的 Longitude/Latitude(8307),Oracle
Spatial 規定,一個幾何字段中的所有幾何對象都必須為相同的 sdo_Srid 值。

③ sdo_Point

sdo_Point 是一個包含三維坐標 X,Y,Z 數值信息的對象,用于表示幾何類型為點的幾何對象。如果 sdo_Elem_Info 和 SDO_ORDINATES 數組都為空,則 sdo_Point 中的 X,Y,Z 為點對象的坐標值,否則,sdo_Point 的值將被忽略(用 NULL 表示)。Oracle
Spatial 強烈要求用 sdo_Point 存儲空間實體為點類型空間數據,這樣可以極大的優化 Oracle
Spatial 的存儲性能和查詢效率。


sdo_Elem_Info

sdo_Elem_Info 是一個可變長度的數組,每 3 個數作為一個元素單位,用于表示坐標是如何存儲在 SDO_ORDINATES 數組中的。本文把組成一個元素的 3 個數稱為 3 元組。一個 3 元組包含以下 3 部分的內容:


SDO_STARTING_OFFSET

SDO_STARTING_OFFSET
表明每個幾何元素的第一個坐標在 SDO_ORDINATES 數組中的存儲位置。它的值從 1 開始,逐漸增加。


SDO_ETYPE

SDO_ETYPE 用于表示幾何對象中每個組成元素的幾何類型。當它的值為 1, 2,
1003 和 2003 時,表明這個幾何元素為簡單元素。如果 SDO_ETYPE 為 1003,表明該多邊形為外環(第一個數為 1 表示外環),坐標值以逆時針存儲;如果 SDO_ETYPE 為 2003,表明該多邊形為內環(第一個數為 2 表示內環),坐標值以順時針存儲。當 SDO_ETYPE 為 4,
1005 和 2005 時,表明這個幾何元素為復雜元素。它至少包含一個 3 元組用以說明該復雜元素具有多少個幾何簡單元素。同樣,1005 表示多邊形為外環,坐標值以逆時針存儲;2005 表示多邊形為內環,坐標值以順時針存儲。


SDO_INTERPRETATION

SDO_INTERPRETATION 具有兩層含義,具體的作用由 SDO_ETYPE 是否為復雜元素決定。如果 SDO_ETYPE 是復雜元素(4,
1005 和 2005),則 SDO_INTERPRETATION 表示它后面有幾個子 3 元組屬于這個復雜元素。如果 SDO_ETYPE 是簡單元素(1, 2,
1003 和 2003),則 SDO_INTERPRETATION 表示該元素的坐標值在 SDO_ORDINATES 中是如何排列的。

需要注意的是,對于復雜元素來說,組成它的子元素是連續的,一個子元素的最后一個點是下一個子元素的起點。最后一個子元素的最后一個坐標要么與下一個元素的 SDO_STARTING_OFFSET 值減 1 所對應的坐標相同,要么是整個 SDO_ORDINATES 數組的最后一個坐標。
 


sdo_Ordinates

SDO_ORDINATES 是一個可變長度的數組,用于存儲幾何對象的實際坐標,是一個最大長度為 1048576,類型為 Number 的數組。

SDO_ORDINATES 必須與 sdo_Elem_Info 數組配合使用,才具有實際意義。SDO_ORDINATES 的坐標存儲方式由幾何對象的維數決定,如果幾何對象為二維,則 SDO_ORDINATES 的坐標以 {
x1, y1, x2, y2, …} 順序排列,如果幾何對象為三維,則 SDO_ORDINATES 的坐標以 {x1, y1, z1, x2, y2, z2,
…} 的順序排列。

3、空間索引技術:

Oracle
Spatial 提供 R 樹索引和四叉樹索引兩種索引機制來提高空間查詢和空間分析的速度。用戶需要根據不同空間數據類型創建不同的索引,當空間數據類型比較復雜時,如果選擇索引類型不當,將使 Oracle
Spatial 創建索引的過程變得非常慢。

三、將經緯度轉化成地名

目前各類位置服務 LBS 最終返回的都是誤差允許范圍內的經緯度,如 GPS 車載終端,手機定位等移動設備,系統通過一定的技術算法可以將其轉化成具體的地名或附近的地標?;蚋鶕枰祷禺斍拔恢糜脩絷P心的周邊信息:如醫院、賓館、加油站、公交車站等內容。

1、空間數據到 Oracle
Spatial 的導入

當前專題空間數據庫建立的過程包括技術設計、資料準備、數據獲取和數據入庫等內容。數據的獲取常可利用現有的 GIS
專業軟件如 GeoStar、MAPGIS、SUPERMAP、ARCGIS 等來實現,獲得的數據通過某一空間數據引擎 (如 Easyloader) 上載到 Oracle
數據庫中,實現利用 Oracle Spatial 存儲、管理空間數據。MAPORA 引擎是把 MAPGIS 的明碼格式通過編程實現空間數據上載 Oracle
Spatial 的一種方法。

2、定位服務的整個流程

3、Oracle
Spatial 關聯用到的程序包:

◆ sdo_Geom.Relate(sdo_Geometry1,‘MASK’,
sod_Geometry2, tolerance
):用于判斷一個幾何體與另一個幾何體的關系,我們用于判斷當前點是否在某一個面 (省份面、縣市面、鄉鎮面) 上。


sdo_Geometry1,sdo_Geometry2 為空間數據對應的幾何對象。

◇ Tolerance:
容許的精度范圍;


MASK=Anyinteract/Contains/Coveredby/Covers/Disjoint/

○ Anyinteract:
sdo_Geometry2 落在 sdo_Geometry1 面上包括在邊上。

○ Contains:
sdo_Geometry2 完全包含在 sdo_Geometry1 幾何對象中,并且兩個幾何對象的邊沒有交叉。

○ Coveredby:
sdo_Geometry1 完全包含在 sdo_Geometry2 中,并且這兩個幾何對象的邊有一個或多個點相互重疊。

○ Covers:
sdo_Geometry2 完全包含在 sdo_Geometry1 中,并且這兩個幾何對象的邊有一個或多個點相互重疊。

○ Disjoint:
兩個幾何沒有重疊交叉點,也沒有共同的邊。

○ Equal: 兩個幾何是相等的。

○ Inside:
sdo_Geometry1 完全包含在 sdo_Geometry2 幾何對象中,并且兩個幾何對象的邊沒有交叉。

○ On:
sdo_Geometry1 的邊和內部的線完全在 sdo_Geometry2 上。

○ Overlapbdydisjoint:
兩個幾何對象交迭,但是邊沒有交叉。

○ Overlapbdyintersect:
兩個幾何對象交迭,并且邊有部分交叉。

○ Touch: 兩個幾何對象有共同的邊,但沒有交叉。

◆ sdo_nn(
sdo_Geometry1, sdo_Geometry2,‘sdo_num_res’, Tolerance
):用于返回幾何體 sdo_Geometry2 周邊附近有什么其他幾何體集。


sdo_Geometry1,sdo_Geometry2 為空間數據對應的幾何對象。

◇ Tolerance:
容許的精度范圍;

◇ sdo_num_res=n: 表示返回 n 個幾何體,=1 表示只返回一個。


sdo_Geom.Within_Distance(sdo_Geometry1, Distance, sdo_Geometry2, Tolerance,
unit )用于判斷幾何體 sdo_Geometry2 在指定的距離 Distance 內周邊附近有什么其他幾何體集。


sdo_Geometry1,sdo_Geometry2 為空間數據對應的幾何對象。

◇ Tolerance:
容許的精度范圍;

◇ Distance: 指定的距離;

◇ Unit: 用于表示距離的單位,可能是 Unit=M/
Unit=KM 等長度單位,但必須是 SDO_DIST_UNITS 表中列舉出來的單位之一。

4、返回的信息:

返回的信息根據業務需要可以返回空間信息關聯到的所有信息,然后用三段論方式組合成一段話,通過 SMS 等方式返回到移動終端。


可以是當前位置的地名、城市地標、自定義地標、道路名稱等位置信息;


可以是當前位置的周邊信息:醫院、賓館、加油站、公交車站等;

四、結束語

采用 Oracle
Spatial
存儲、管理空間數據,易于解決數據共享、分布式處理、網絡通信、開放式開發、并發控制、網絡化集成、跨平臺運行及數據安全恢復機制等方面的難題。

可以直接通過 Oracle
Spatial 具有強大空間分析
進行空間分析:最短路徑分析、連通性分析、交通系統中最少換乘算法及其實現等。

LBS 業務具有廣闊的發展前景,目前商用的 LBS 業爭也達到了相當程度的滲透率。LBS 業務涉及的領域很多,需要移動通信領域與 GIS 領域相結合來共同實現。我國目前很重視 GIS 領域的發展,國內已經有相當多具有一定實力和發展潛力的 GIS 廠商。相信隨著今后 LBS 業務需求的不斷增長,以及我國 GIS 領域的不斷發展完善,LBS 業務將得到更廣泛的應用。

看完上述內容,你們掌握 Oracle Spatial 基本操作是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計4635字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 苏州市| 西华县| 乌鲁木齐市| 射洪县| 阜城县| 吉隆县| 玉门市| 泾川县| 桓台县| 杂多县| 高淳县| 长寿区| 和平县| 镇坪县| 华蓥市| 外汇| 浪卡子县| 东港市| 和龙市| 仙居县| 元谋县| 柘荣县| 仁寿县| 安阳市| 天镇县| 宣化县| 房产| 乌拉特后旗| 合江县| 河间市| 安仁县| 银川市| 镇远县| 杨浦区| 佳木斯市| 西安市| 东乡族自治县| 淮北市| 东辽县| 德安县| 修武县|