亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle Spatial基本操作是怎樣的

發布時間:2021-10-18 09:33:12 來源:億速云 閱讀:132 作者:柒染 欄目:數據庫

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


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

  1、元數據表說明

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

       Oracle Spatial基本操作是怎樣的

  2、空間字段解析

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

       Oracle Spatial基本操作是怎樣的  

  ①
sdo_Gtype

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

        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數組的最后一個坐標。
                                                 
Oracle Spatial基本操作是怎樣的        

  ⑤
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車載終端,手機定位等移動設備,系統通過一定的技術算法可以將其轉化成具體的地名或附近的地標。或根據需要返回當前位置用戶關心的周邊信息:如醫院、賓館、加油站、公交車站等內容。

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

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

  2、定位服務的整個流程

Oracle Spatial基本操作是怎樣的        

  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基本操作是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桃源县| 平乡县| 白城市| 宾川县| 临高县| 石家庄市| 灵川县| 察隅县| 轮台县| 方山县| 仙游县| 萨嘎县| 宁城县| 定日县| 兴仁县| 南川市| 乐业县| 百色市| 永和县| 余干县| 衡阳市| 磐石市| 长武县| 益阳市| 彩票| 桃源县| 南雄市| 鄢陵县| 维西| 湛江市| 炉霍县| 阿勒泰市| 和平县| 明星| 收藏| 保德县| 灌云县| 无锡市| 石家庄市| 讷河市| 枣强县|