Oracle Spatial基本操作是怎樣的,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁制作,對(duì)成都木包裝箱等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)營銷推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
Spatial主要通過元數(shù)據(jù)表、空間數(shù)據(jù)字段(即sdo_Geometry字段)和空間索引來管理空間數(shù)據(jù),并在此基礎(chǔ)上提供一系列空間查詢和空間分析的程序包,讓用戶進(jìn)行更深層次的GIS應(yīng)用開發(fā)。Oracle
Spatial使用空間字段sdo_Geometry存儲(chǔ)空間數(shù)據(jù),用元數(shù)據(jù)表來管理具有sdo_Geometry字段的空間數(shù)據(jù)表,并采用R樹索引和四叉樹索引技術(shù)來提高空間查詢和空間分析的速度。
1、元數(shù)據(jù)表說明
Oracle
Spatial的元數(shù)據(jù)表存儲(chǔ)了有空間數(shù)據(jù)的數(shù)據(jù)表名稱、空間字段名稱、空間數(shù)據(jù)的坐標(biāo)范圍、坐標(biāo)系以及坐標(biāo)維數(shù)說明等信息。用戶必須通過元數(shù)據(jù)表才能知道Oracle數(shù)據(jù)庫中是否有Oracle
Spatial的空間數(shù)據(jù)信息。通過元數(shù)據(jù)視圖(USER_SDO_GEOM_METADATA)訪問元數(shù)據(jù)表。元數(shù)據(jù)視圖的基本定義為:
2、空間字段解析
Oracle
Spatial的空間數(shù)據(jù)都存儲(chǔ)在空間字段sdo_Geometry中,理解sdo_Geometry是編寫Oracle
Spatial程序的關(guān)鍵。sdo_Geometry是按照Open GIS規(guī)范定義的一個(gè)對(duì)象,其原始的創(chuàng)建方式如下所示。
①
sdo_Gtype
是一個(gè)NUMBER型的數(shù)值,用來定義存儲(chǔ)幾何對(duì)象的類型。sdo_Gtype是一個(gè)4個(gè)數(shù)字的整數(shù),其格式為dltt,其中d表示幾何對(duì)象的維數(shù);l表示三維線性參考系統(tǒng)中的線性參考值,當(dāng)d為3維或者4維時(shí)需要設(shè)置該值,一般情況下為空;tt為幾何對(duì)象的類型,Oracle
Spatial定義了7種類型的幾何類型,目前,tt使用了00到07,其中08到99是Oracle
Spatial保留的數(shù)字,以備將來幾何對(duì)象擴(kuò)展所用。
②
sdo_Srid
sdo_Srid也是一個(gè)NUMBER型的數(shù)值,它用于標(biāo)識(shí)與幾何對(duì)象相關(guān)的空間坐標(biāo)系。如果sdo_Srid為空(null),則表示沒有坐標(biāo)系與該幾何對(duì)象相關(guān);如果該值不為空,則該值必須為MDSYS.CS_SRS表中SRID字段的一個(gè)值,在創(chuàng)建含有幾何對(duì)象的表時(shí),這個(gè)值必須加入到描述空間數(shù)據(jù)表元數(shù)據(jù)的USER_SDO_GEOM_METADATA視圖的SRID字段中。對(duì)于我們通常使用國際標(biāo)準(zhǔn)的Longitude/Latitude(8307),Oracle
Spatial規(guī)定,一個(gè)幾何字段中的所有幾何對(duì)象都必須為相同的sdo_Srid值。
③ sdo_Point
sdo_Point是一個(gè)包含三維坐標(biāo)X,Y,Z數(shù)值信息的對(duì)象,用于表示幾何類型為點(diǎn)的幾何對(duì)象。如果sdo_Elem_Info和SDO_ORDINATES數(shù)組都為空,則sdo_Point中的X,Y,Z為點(diǎn)對(duì)象的坐標(biāo)值,否則,sdo_Point的值將被忽略(用NULL表示)。Oracle
Spatial強(qiáng)烈要求用sdo_Point存儲(chǔ)空間實(shí)體為點(diǎn)類型空間數(shù)據(jù),這樣可以極大的優(yōu)化Oracle
Spatial的存儲(chǔ)性能和查詢效率。
④
sdo_Elem_Info
sdo_Elem_Info是一個(gè)可變長(zhǎng)度的數(shù)組,每3個(gè)數(shù)作為一個(gè)元素單位,用于表示坐標(biāo)是如何存儲(chǔ)在SDO_ORDINATES數(shù)組中的。本文把組成一個(gè)元素的3個(gè)數(shù)稱為3元組。一個(gè)3元組包含以下3部分的內(nèi)容:
◇
SDO_STARTING_OFFSET
SDO_STARTING_OFFSET
表明每個(gè)幾何元素的第一個(gè)坐標(biāo)在SDO_ORDINATES數(shù)組中的存儲(chǔ)位置。它的值從1開始,逐漸增加。
◇
SDO_ETYPE
SDO_ETYPE 用于表示幾何對(duì)象中每個(gè)組成元素的幾何類型。當(dāng)它的值為1, 2,
1003和2003時(shí),表明這個(gè)幾何元素為簡(jiǎn)單元素。如果SDO_ETYPE為1003,表明該多邊形為外環(huán)(第一個(gè)數(shù)為1表示外環(huán)),坐標(biāo)值以逆時(shí)針存儲(chǔ);如果SDO_ETYPE為2003,表明該多邊形為內(nèi)環(huán)(第一個(gè)數(shù)為2表示內(nèi)環(huán)),坐標(biāo)值以順時(shí)針存儲(chǔ)。當(dāng)SDO_ETYPE為4,
1005和2005時(shí),表明這個(gè)幾何元素為復(fù)雜元素。它至少包含一個(gè)3元組用以說明該復(fù)雜元素具有多少個(gè)幾何簡(jiǎn)單元素。同樣,1005表示多邊形為外環(huán),坐標(biāo)值以逆時(shí)針存儲(chǔ);2005表示多邊形為內(nèi)環(huán),坐標(biāo)值以順時(shí)針存儲(chǔ)。
◇
SDO_INTERPRETATION
SDO_INTERPRETATION具有兩層含義,具體的作用由SDO_ETYPE是否為復(fù)雜元素決定。如果SDO_ETYPE是復(fù)雜元素(4,
1005和2005),則SDO_INTERPRETATION表示它后面有幾個(gè)子3元組屬于這個(gè)復(fù)雜元素。如果SDO_ETYPE是簡(jiǎn)單元素(1, 2,
1003和2003),則SDO_INTERPRETATION表示該元素的坐標(biāo)值在SDO_ORDINATES中是如何排列的。
需要注意的是,對(duì)于復(fù)雜元素來說,組成它的子元素是連續(xù)的,一個(gè)子元素的最后一個(gè)點(diǎn)是下一個(gè)子元素的起點(diǎn)。最后一個(gè)子元素的最后一個(gè)坐標(biāo)要么與下一個(gè)元素的SDO_STARTING_OFFSET值減1所對(duì)應(yīng)的坐標(biāo)相同,要么是整個(gè)SDO_ORDINATES數(shù)組的最后一個(gè)坐標(biāo)。
⑤
sdo_Ordinates
SDO_ORDINATES是一個(gè)可變長(zhǎng)度的數(shù)組,用于存儲(chǔ)幾何對(duì)象的實(shí)際坐標(biāo),是一個(gè)較大長(zhǎng)度為1048576,類型為Number的數(shù)組。
SDO_ORDINATES必須與sdo_Elem_Info數(shù)組配合使用,才具有實(shí)際意義。SDO_ORDINATES的坐標(biāo)存儲(chǔ)方式由幾何對(duì)象的維數(shù)決定,如果幾何對(duì)象為二維,則SDO_ORDINATES的坐標(biāo)以{
x1, y1, x2, y2, …}順序排列,如果幾何對(duì)象為三維,則SDO_ORDINATES的坐標(biāo)以{x1, y1, z1, x2, y2, z2,
…}的順序排列。
3、空間索引技術(shù):
Oracle
Spatial提供R樹索引和四叉樹索引兩種索引機(jī)制來提高空間查詢和空間分析的速度。用戶需要根據(jù)不同空間數(shù)據(jù)類型創(chuàng)建不同的索引,當(dāng)空間數(shù)據(jù)類型比較復(fù)雜時(shí),如果選擇索引類型不當(dāng),將使Oracle
Spatial創(chuàng)建索引的過程變得非常慢。
三、將經(jīng)緯度轉(zhuǎn)化成地名
目前各類位置服務(wù)LBS最終返回的都是誤差允許范圍內(nèi)的經(jīng)緯度,如GPS車載終端,手機(jī)定位等移動(dòng)設(shè)備,系統(tǒng)通過一定的技術(shù)算法可以將其轉(zhuǎn)化成具體的地名或附近的地標(biāo)?;蚋鶕?jù)需要返回當(dāng)前位置用戶關(guān)心的周邊信息:如醫(yī)院、賓館、加油站、公交車站等內(nèi)容。
1、空間數(shù)據(jù)到Oracle
Spatial的導(dǎo)入
當(dāng)前專題空間數(shù)據(jù)庫建立的過程包括技術(shù)設(shè)計(jì)、資料準(zhǔn)備、數(shù)據(jù)獲取和數(shù)據(jù)入庫等內(nèi)容。數(shù)據(jù)的獲取常可利用現(xiàn)有的GIS
專業(yè)軟件如GeoStar、MAPGIS、SUPERMAP、ARCGIS 等來實(shí)現(xiàn),獲得的數(shù)據(jù)通過某一空間數(shù)據(jù)引擎(如Easyloader)上載到Oracle
數(shù)據(jù)庫中,實(shí)現(xiàn)利用Oracle Spatial 存儲(chǔ)、管理空間數(shù)據(jù)。MAPORA 引擎是把MAPGIS 的明碼格式通過編程實(shí)現(xiàn)空間數(shù)據(jù)上載Oracle
Spatial 的一種方法。
2、定位服務(wù)的整個(gè)流程
3、Oracle
Spatial關(guān)聯(lián)用到的程序包:
◆ sdo_Geom.Relate(sdo_Geometry1, ‘MASK’,
sod_Geometry2, tolerance
):用于判斷一個(gè)幾何體與另一個(gè)幾何體的關(guān)系,我們用于判斷當(dāng)前點(diǎn)是否在某一個(gè)面(省份面、縣市面、鄉(xiāng)鎮(zhèn)面)上。
◇
sdo_Geometry1,sdo_Geometry2為空間數(shù)據(jù)對(duì)應(yīng)的幾何對(duì)象。
◇ Tolerance:
容許的精度范圍;
◇
MASK=Anyinteract/Contains/Coveredby/Covers/Disjoint/
○ Anyinteract:
sdo_Geometry2落在sdo_Geometry1面上包括在邊上。
○ Contains:
sdo_Geometry2完全包含在sdo_Geometry1幾何對(duì)象中,并且兩個(gè)幾何對(duì)象的邊沒有交叉。
○ Coveredby:
sdo_Geometry1完全包含在sdo_Geometry2中,并且這兩個(gè)幾何對(duì)象的邊有一個(gè)或多個(gè)點(diǎn)相互重疊。
○ Covers:
sdo_Geometry2完全包含在sdo_Geometry1中,并且這兩個(gè)幾何對(duì)象的邊有一個(gè)或多個(gè)點(diǎn)相互重疊。
○ Disjoint:
兩個(gè)幾何沒有重疊交叉點(diǎn),也沒有共同的邊。
○ Equal: 兩個(gè)幾何是相等的。
○ Inside:
sdo_Geometry1完全包含在sdo_Geometry2幾何對(duì)象中,并且兩個(gè)幾何對(duì)象的邊沒有交叉。
○ On:
sdo_Geometry1的邊和內(nèi)部的線完全在sdo_Geometry2上。
○ Overlapbdydisjoint:
兩個(gè)幾何對(duì)象交迭,但是邊沒有交叉。
○ Overlapbdyintersect:
兩個(gè)幾何對(duì)象交迭,并且邊有部分交叉。
○ Touch: 兩個(gè)幾何對(duì)象有共同的邊,但沒有交叉。
◆ sdo_nn(
sdo_Geometry1, sdo_Geometry2, ‘sdo_num_res’, Tolerance
):用于返回幾何體sdo_Geometry2周邊附近有什么其他幾何體集。
◇
sdo_Geometry1,sdo_Geometry2為空間數(shù)據(jù)對(duì)應(yīng)的幾何對(duì)象。
◇ Tolerance:
容許的精度范圍;
◇ sdo_num_res=n: 表示返回n個(gè)幾何體,=1表示只返回一個(gè)。
◆
sdo_Geom.Within_Distance(sdo_Geometry1, Distance, sdo_Geometry2, Tolerance,
'unit' )用于判斷幾何體sdo_Geometry2在指定的距離Distance內(nèi)周邊附近有什么其他幾何體集。
◇
sdo_Geometry1,sdo_Geometry2為空間數(shù)據(jù)對(duì)應(yīng)的幾何對(duì)象。
◇ Tolerance:
容許的精度范圍;
◇ Distance: 指定的距離;
◇ Unit: 用于表示距離的單位,可能是Unit=M/
Unit=KM等長(zhǎng)度單位,但必須是SDO_DIST_UNITS表中列舉出來的單位之一。
4、返回的信息:
返回的信息根據(jù)業(yè)務(wù)需要可以返回空間信息關(guān)聯(lián)到的所有信息,然后用三段論方式組合成一段話,通過SMS等方式返回到移動(dòng)終端。
◆
可以是當(dāng)前位置的地名、城市地標(biāo)、自定義地標(biāo)、道路名稱等位置信息;
◆
可以是當(dāng)前位置的周邊信息:醫(yī)院、賓館、加油站、公交車站等;
四、結(jié)束語
采用Oracle
Spatial
存儲(chǔ)、管理空間數(shù)據(jù),易于解決數(shù)據(jù)共享、分布式處理、網(wǎng)絡(luò)通信、開放式開發(fā)、并發(fā)控制、網(wǎng)絡(luò)化集成、跨平臺(tái)運(yùn)行及數(shù)據(jù)安全恢復(fù)機(jī)制等方面的難題。
可以直接通過Oracle
Spatial 具有強(qiáng)大空間分析
進(jìn)行空間分析:短路徑分析、連通性分析、交通系統(tǒng)中最少換乘算法及其實(shí)現(xiàn)等。
LBS業(yè)務(wù)具有廣闊的發(fā)展前景,目前商用的LBS業(yè)爭(zhēng)也達(dá)到了相當(dāng)程度的滲透率。LBS業(yè)務(wù)涉及的領(lǐng)域很多,需要移動(dòng)通信領(lǐng)域與GIS領(lǐng)域相結(jié)合來共同實(shí)現(xiàn)。我國目前很重視GIS領(lǐng)域的發(fā)展,國內(nèi)已經(jīng)有相當(dāng)多具有一定實(shí)力和發(fā)展?jié)摿Φ腉IS廠商。相信隨著今后LBS業(yè)務(wù)需求的不斷增長(zhǎng),以及我國GIS領(lǐng)域的不斷發(fā)展完善,LBS業(yè)務(wù)將得到更廣泛的應(yīng)用。
看完上述內(nèi)容,你們掌握Oracle Spatial基本操作是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
當(dāng)前文章:OracleSpatial基本操作是怎樣的-創(chuàng)新互聯(lián)
本文路徑:http://muchs.cn/article0/dgiiio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、云服務(wù)器、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、App開發(fā)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容