中南大學地理信息系統(tǒng)概論第11講 oracle Spatial_第1頁
中南大學地理信息系統(tǒng)概論第11講 oracle Spatial_第2頁
中南大學地理信息系統(tǒng)概論第11講 oracle Spatial_第3頁
中南大學地理信息系統(tǒng)概論第11講 oracle Spatial_第4頁
中南大學地理信息系統(tǒng)概論第11講 oracle Spatial_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

中南大學測繪與國土信息工程系OracleSpatial簡介OracleSpatial基本概念OracleSpatial對象關(guān)系模式空間索引和空間查詢坐標系統(tǒng)線性參考系統(tǒng)要點OracleSpatialObject-RelationalModelSpatialData、AttributeData、GeometryTypeDataModelCoordinateSystem&ToleranceQueryModelIndexingSpatialdataR-treeIndexQuadtreeIndexSpatialRelations&FilteringSpatialAggregateFunctions基本概念OracleSpatial:實現(xiàn)OracleDB中空間特征集的存儲、檢索、修改、查詢的一個用戶模式和功能:一個用戶模式MDSYS:該模式規(guī)定了支持幾何數(shù)據(jù)類型的存儲方式、語法、語義;兩種空間索引方法;一套操作和函數(shù)集:使用這些操作和函數(shù)完成空間查詢、空間連接等空間分析操作;管理工具集。OracleSpatialObject-RelationalModel關(guān)系模型+部分面向?qū)ο髾C制: 抽象數(shù)據(jù)類型:SDO_GEOMETRY(含成員、方法函數(shù))

可變數(shù)組:SDO_ORDINATES

嵌入對象OracleSpatial使用這樣的表結(jié)構(gòu)來組織和存儲空間數(shù)據(jù): 除了通常的列之外,還含有類型為SDO_GEOMETRY類型的列; 表中每個記錄與一幾何體對應,在SDO_GEOMETRY類型的列中存放空間位置數(shù)據(jù),其它列放置屬性數(shù)據(jù)。Object-RelationalModelGIDSHAPE屬性_1……屬性_nSDO_GEOMETRY類型SpatialData:表示現(xiàn)實或概念對象在其現(xiàn)實或概念空間中存在的位置特征: 地理位置數(shù)據(jù)(經(jīng)緯度、高程); CAD/CAM數(shù)據(jù)。AttributeData:現(xiàn)實或概念對象的非空間特征,如:地名、人口、零件號等。GeometryType:幾何體是有序的頂點序列,這些頂點通過直線段和圓弧連接起來,OracleSpatial支持如下基本類型幾何體:點和點集(Pointsandpointclusters):由兩個(二維)或三個(三維)坐標分量標識位置線串(Linestrings):由多個坐標對定義的直線段N邊形(n-pointpolygons):由多個連接的直線段構(gòu)成的封閉環(huán),通常指環(huán)內(nèi)部弧線串(Arclinestrings)Spatial&AttributeDataSpatial&AttributeData(續(xù))不用于測量坐標系

弧多邊形(Arcpolygons)組合多邊形(Compoundpolygons)組合線串(Compoundlinestrings)圓(Circles)和優(yōu)化長方形(Optimizedrectangles)DataModelDataModel(數(shù)據(jù)模型):坐標系統(tǒng)(CoordinateSystem)給位置分配坐標并建立坐標間相互關(guān)系的方式方法,分類: 笛卡爾坐標系(Cartesian); 大地坐標系(Geodeticcoordinatesystem)容忍量(Tolerance)描述空間數(shù)據(jù)的精度(起取值一般為坐標最低有效位的一半),用法: 在圖層的元數(shù)據(jù)定義中使用(視圖xxx_SDO_GEOM_METADATA.DIMINFO.SDO_TOLERANCE); 作為空間分析函數(shù)(如SDO_GEOM.SDO_DISTANCE)的輸入?yún)?shù)(當不給出此參數(shù)或值為null時,取元數(shù)據(jù)中定義的容忍量)。Coordinatesystem&Tolerance大的Tolerance小的Tolerance主過濾是基于空間索引的,利用幾何體的近似逼近得到滿足條件的候選集某些應用只需要進行主過濾操作查詢模型(QueryModel)基于主過濾(Primitivefilter)和次過濾(Secondaryfilter)的兩層空間查詢和空間連接: 主過濾:快速、低成本、近似計算,輸出是精確結(jié)果的超集; 次過濾:高成本、精確計算,輸出是精確結(jié)果。QueryModelIndexingSpatialdata空間數(shù)據(jù)索引方法(Indexingofspatialdata)索引:縮短搜索路徑的方法??臻g索引:索引數(shù)據(jù)是基于幾何體的空間數(shù)據(jù)生成的,是一種邏輯性索引。空間索引用于:窗口查詢:在一索引過的數(shù)據(jù)空間中,找到與給定點或區(qū)域相互作用的對象;空間連結(jié):在兩索引過的數(shù)據(jù)空間中,找到空間相互作用的對象對。兩種空間索引方式:R-TREE索引和QUADTREE索引,對空間數(shù)據(jù)可選擇使用一種或同時使用兩種索引方式IndexingSpatialdata(續(xù))R-TREE索引QUADTREE索引不能調(diào)整對幾何體的逼近精度對幾何體的逼近精度可通過調(diào)整分片級別和分片數(shù)完成索引的創(chuàng)建和調(diào)整容易索引的調(diào)整復雜,并且調(diào)整相應參數(shù)會明顯影響性能需較少的存儲空間需較多的存儲空間用于最近相鄰查詢操作(SDO_NN),速度較快用于最近相鄰查詢操作(SDO_NN),速度較慢對空間列的修改和插入操作而言,性能有較大影響對空間列的修改操作而言,不影響性能可以索引到四維(LRS)只能對兩維進行索引R-treeIndexR-tree索引使用一最小的矩形(Minimumboundingrectangle,MBR)逼近一幾何體。對于圖層中的幾何體,R-tree索引是對層中幾何體的MBR作的一層次化的索引:1到9是圖層中相應幾何體的MBR;a,b,c,d是RTREE樹的葉結(jié)點,含有所包括的幾何體的MBR和指向該幾何體的指針;即a含1、2,b含3、4,c含5、6、7,d含8、9;A含a和b的MBR,B含c和d的MBR;根結(jié)點含A和B的MBR。R-treeIndex(續(xù))R-tree索引質(zhì)量:影響到R-tree索引的插入和刪除操作可能會影響R-tree結(jié)構(gòu)的質(zhì)量,從而可能降低查詢的性能。對查詢而言,R-tree結(jié)構(gòu)的性能與R-tree結(jié)點的面積和周長有關(guān)。級別0的面積指的是圖層中所有幾何體的MBR的面積,級別1的面積指的是R-tree索引的葉結(jié)點的面積,依此類推;隨著對圖層表的修改,根結(jié)點的面積與級別0的面積的比值會改變,如果此比值發(fā)生明顯增加,重建此索引可能會對查詢性能的提高有幫助。Spatial提供了與幾個R-tree索引質(zhì)量有關(guān)的函數(shù)和過程(Oracle9i中新增):SDO_TUNE.ANALYZE_RTREE:提供是否需重建索引的建議,它計算索引的當前質(zhì)量分,并與索引得到重建后的質(zhì)量分進行比較,從而給出建議;SDO_TUNE.RTREE_QUALITY:計算索引的當前質(zhì)量分;SDO_TUNE.QUALITY_DEGRADATION:返回索引的當前質(zhì)量退化。R-tree索引數(shù)據(jù)存儲在空間索引表中(可從USER_SDO_INDEX_METADATA視圖的SDO_INDEX_TABLE列中看出);為了保證并行用戶實現(xiàn)對索引的同時修改,R-tree索引還維護了一序列發(fā)生器(可從USER_SDO_INDEX_METADATA視圖的SDO_RTREE_SEQ_NAME列中看出)。QuadtreeIndexQuadtree索引

在線性quadtree索引方法中,對坐標空間執(zhí)行一種稱之為細化(tessellation)的過程。該過程得到各幾何體的覆蓋小片(tile),生成的這些小片具有排它性和空間徹底性;細化過程是:首先,沿坐標方向平分,得到4個小片,對那些與幾何體相交的小片再進行沿坐標方向的平分,如此進行下去,直到確定的結(jié)束準則滿足為止:設定的片大小或覆蓋幾何體的片的最大數(shù)量。細化的結(jié)果存儲在索引表中。

Spatial可以使用固定大小片(fixed-sizetile)或可變大小片(variable-sizetile)來逼近幾何體:固定大小片由片分辨率控制,如果分辨率是唯一的控制因素,則對坐標空間的細化經(jīng)過特定的次數(shù)后就結(jié)束,因此片的大小和形狀是固定的;分辨率可由用戶使用參數(shù)SDO_LEVEL設定;

可變大小分片是由片的最大數(shù)量控制的,如果每個幾何體的片數(shù)n是唯一的控制因素,當已有n小片覆蓋幾何體時,則細化過程結(jié)束;片的最大數(shù)量可由用戶使用參數(shù)SDO_NUMTILES設定。

QuadtreeIndex(續(xù))

固定大小片越小或可變大小分片越多,則對幾何體的逼近效果越好,否則逼近越粗。

Spatial支持兩種Quadtree索引類型: 固定大小片索引:此時SDO_LEVEL非零非空,并且SDO_NUMTILES為零或為空; 混合(hybird)索引:此時SDO_LEVEL既不為零也不為空,并且SDO_NUMTILES既不為零也不為空;每個幾何體產(chǎn)生兩組小片。大多數(shù)空間應用不使用混合索引。特定細化層次上的片,可按如下方式線性編碼(Morton碼)排列QuadtreeIndex(續(xù))固定大小片索引的特點: 片的大小相同,片編碼長度相同; 可以使用標準SQL的相等操作符進行片的比較; 索引的有效性和效率取決于分片的級數(shù)和圖層中幾何體的大小變化程度,如果選擇小的分片去逼近小的幾何體,則用同樣大小的片去逼近較大幾何體時,則需要較多的片;相反,則需要較少的片,但較大的片不能很好地逼近較小的幾何體,索引的選擇性就較差。選擇性好選擇性差QuadtreeIndex(續(xù))可以使用SDO_TUNE.ESTIMATE_TILING_LEVEL函數(shù)或OEM的SpatialIndexAdvisortool幫助決定分片的級別。空間關(guān)系和過濾(Spatialrelationsandfiltering)OracleSpatial使用次過濾(Secondaryfiltering)來確定數(shù)據(jù)庫中實體間的空間關(guān)系:基于拓撲和距離SpatialRelations&FilteringA、B兩空間對象間的距離:A內(nèi)的點與B內(nèi)的點間距離的最小值。如果A、B兩對象間的距離小于給定值,則稱A在B的給定距離內(nèi);要確定空間關(guān)系,OracleSpatial提供了次過濾階段使用的幾個操作符:

SDO_RELATE:測試空間對象間是否存在指定的拓撲關(guān)系;SDO_WITHIN_DISTANCE:測試兩空間對象是否相互在給定距離內(nèi);SDO_NN:標識一空間對象的位置最近對象,即從一圖層中返回指定數(shù)量的與給定幾何體最近的對象。SpatialRelations&Filtering(續(xù))SDO_RELATE操作符實現(xiàn)了點、線、多邊形間的一9位二進制正交拓撲關(guān)系模型,假設:空間對象A有三個組件,分別為:Ab----A的邊界,Ai----A的內(nèi)部,Ax----A的外部,則兩對象的三個組件間就有九種可能的相交關(guān)系。0表示組件間相交,1表示組件間不相交。SpatialRelations&Filtering(續(xù))常用的拓撲關(guān)系:DISJOINT:兩對象邊界不相交,內(nèi)部也不相交;TOUCH:兩對象邊界相交,但內(nèi)部不相交;OVERLAPBDYDISJOINT:一個對象的內(nèi)部與另一對象的內(nèi)部和邊界相交,但邊界不相交;OVERLAPBDYINTERSECT:兩對象邊界相交,內(nèi)部也相交;EQUAL:兩對象具有相同的邊界和內(nèi)部;CONTAINS:一個對象的邊界和內(nèi)部完全包含在另一對象內(nèi)部;COVERS:一個對象的內(nèi)部完全包含在另一對象內(nèi)部,并且邊界相交;SpatialRelations&Filtering(續(xù))INSIDE:與CONTAINS相反,即ACONTAINSB,意味著BINSIDESA;COVERBDY:與COVER相反,即ACOVERB,意味著BCOVERBDYA;ON:一個對象的內(nèi)部和邊界在另一對象的邊界之上;ANYINTERSECT:即non-disjoint的兩個對象。SDO_WITHIN_DISTANCE操作符判斷兩對象A和B,是否相互間在給定的距離內(nèi),其判斷方法為:在B的周圍建立距離緩沖區(qū)Db,如果A和Db是ANYINTERSECT的,則SDO_WITHIN_DISTANCE返回TRUE,否則為FALSE;建立緩沖區(qū)的方法為:SpatialAggregateFunctions空間聚集函數(shù)(Spatialaggregatefunctions)OracleSpatial聚集函數(shù)是對SQL查詢查出的幾何對象進行聚集,聚集的結(jié)果還是一類型為SDO_GEOMETRY類型的幾何體,如:SDOAGGRTYPE對象類型:許多聚集函數(shù)有一類型為MDSYS.SDOAGGRTYPE的輸入?yún)?shù),其定義為:

CreatetypeSDOAGGRTYPEasobject(geometryMDSYS.SDO_GEOMETRY,toleranceNUMBER);Spatial對象關(guān)系模式舉例SDO_GeometryObjectTypeGEOMETRY元數(shù)據(jù)結(jié)構(gòu)索引元數(shù)據(jù)索引數(shù)據(jù)表測量單位支持舉例OracleSpatial的對象關(guān)系實現(xiàn)由如下元素組成:一組對象數(shù)據(jù)類型(含對象方法);使用上述對象類型的操作符(operators)、函數(shù)(functions)、過程(procedures)。空間索引的創(chuàng)建和維護也是由DDL和DML完成的。舉例飲料市場:cola_a,cola_b,cola_c,cola_d步驟:創(chuàng)建空間數(shù)據(jù)表

CREATETABLEcola_markets(

mkt_idNUMBERPRIMARYKEY,nameVARCHAR2(32),shapeMDSYS.SDO_GEOMETRY);舉例(續(xù))

插入空間數(shù)據(jù)INSERTINTOcola_marketsvalues(1,’cola_a’,MDSYS.SDO_GEOMETRY(2003,--SDO_GTYPE=2003,即2維多邊形

NULL,--SDO_SRID,即沒有指定坐標系統(tǒng)標識NULL,--SDO_POINT,非點元素

MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),--SDO_ELEM_INFO(SDO_STARTING_OFFSET,SDO_ETYPE,SDO_INTERPRETATION)--SDO_STARTING_OFFSET,該元素的第一個坐標位置,這里是1--SDO_ETYPE,該元素的類型,這里是多邊形(3)外部(1)--SDO_INTERPRETATION,長方形(3)

MDSYS.SDO_ORDINATE_ARRAY(1,1,5,7)));--SDO_ORDINATES,坐標序列INSERTINTOcola_marketsvalues(2,’cola_b’,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),--SDO_INTERPRETATION為1,即多邊形MDSYS.SDO_ORDINATES(5,1,8,1,8,6,5,7,5,1)));舉例(續(xù))INSERTINTOcola_marketsvalues(3,’cola_c’,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),--SDO_INTERPRETATION為1,即多邊形MDSYS.SDO_ORDINATES(3,3,6,3,6,5,4,5,3,3)));INSERTINTOcola_marketsvalues(4,’cola_d’,MDSYS.SDO_GEOMETRY(2003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,4),--SDO_INTERPRETATION為4,即圓MDSYS.SDO_ORDINATES(8,7,10,9,8,11)));

登記元數(shù)據(jù)INSERTINTOUSER_SDO_GEOM_METADATAVALUES(‘cola_markets’,’shape’,MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT(‘X’,0,20,0.005),MDSYS.SDO_DIM_ELEMENT(‘Y’,0,20,0.005)),NULL--SRID));舉例(續(xù))創(chuàng)建空間索引CREATEINDEXcola_spatial_idxONcola_markets(shape)INDEXTPEISMDSYS.SPATIAL_INDEX;

空間數(shù)據(jù)查詢求cola_a和cola_c兩區(qū)域的交集:SELECTSDO_GEOM.SDO_INTERSECTION(a.shape,c.shape,0.005)FROMcola_marketsa,cola_marketscWHERE=‘cola_a’AND=‘cola_c’;兩幾何體是否有任意的空間關(guān)系:SELECTSDO_GEOM.SDO_RELATE(b.shape,’anyinteract’,d.shape,0.005)FROMcola_marketsb,cola_marketsdWHERE=‘cola_b’AND=‘cola_d’;求幾何體的面積:SELECTname,SDO_GEOM.SDO_AREA(shape,0.005)FROMcola_markets;舉例(續(xù))求兩幾何體間的距離:SELECTSDO_GEOM.SDO_DISTANCE(b.shape,d.shape,0.005)FROMcola_marketsb,cola_marketsdWHERE=‘cola_b’AND=‘cola_d’;檢查幾何體是否有效:SELECTname,SDO_GEOM.VALIDATE_GEOMETRY(shape,0.005)FROMcola_markets;檢查圖層是否有效:CREATETABLEvalidate_results(mkt_idNUMBER,resultsVARCHAR2(10));EXECUTESDO_GEOM.VALIDATE_LAYER(‘cola_markets’,’shape’,’mkt_id’,‘validate_results’);SELECT*FROMvalidate_results;SDO_GEOMETRY對象類型SDO_GEOMETRY對象類型在圖層表中用SDO_GEOMETRY類型的列存儲對象的空間數(shù)據(jù),該類型的定義為:

CREATETYPESDO_GEOMETRYASOBJECT(SDO_GTYPENUMBER,--標識幾何體類型SDO_SRIDNUMBER,--標識坐標系統(tǒng)SDO_POINTMDSYS.SDO_POINT_TYPE,--僅用與點幾何體SDO_ELEM_INFOMDSYS.SDO_ELEM_INFO_ARRAY,--SDO_ORDINATESMDSYS.SDO_ORDINATE_ARRAY);--此外,SDO_GEOMETRY還有一些方法函數(shù)。SDO_GTYPE:幾何體類型,有4位數(shù)字構(gòu)成,格式為dltt:

d:標識維數(shù),可能的取值為2、3、4;

l:標識一三維線狀參考系統(tǒng)(Linearreferencingsystem,LRS)幾何體的LRS度量維,即哪一維含度量值(measurevalue),可能的取值為3、4,對于非LRS幾何體或者以ORACLESPATIAL默認的最后一維為LRS度量維,則l取值為0;SDO_GEOMETRY對象類型(續(xù))tt:標識幾何體的類型,有效值為00至07。如下為有效的SDO_GTYPE值:值幾何體類型描述dl00UNKNOW_GEOMETRYOracleSpatial忽略該幾何體數(shù)據(jù)dl01POINT該幾何體為一個點dl02LINEorCURVE該幾何體為一線串(線串中的段可以為直線段也可以為弧線斷dl03POLYGON該幾何體為一多邊形,該多邊形可有洞也可沒有dl04COLLECTION是元素的集合,其中的元素只要是非COLLECTION類型的即可dl05MULTIPOINT含一個或多個點的幾何體dl06MULTILINEorMULTICURVE含一個或多個線串的幾何體dl07MULTIPOLYGON多個DISJOINT的多邊形此外,一圖層中,各幾何體的維數(shù)必須相同;SDO_GEOMETRY類型提供了GET_DIMS、GET_LRS_DIM、GET_GTYPE方法函數(shù)得到幾何體的SDO_GTYPE信息。SDO_GEOMETRY對象類型(續(xù))

SDO_SRID:標識幾何體所關(guān)聯(lián)的坐標系統(tǒng)如果SDO_SRID非空,則該值必須來自于MDSYS.CS_SRS的SRID列,并且這樣的值必須插入到USER_SDO_GEOM_METADATA視圖的SRID列中,一圖層中,各幾何體的SRID值必須相同。

SDO_POINT:具有數(shù)值型成員X、Y、Z的對象類型如果SDO_ELEM_INFO和SDO_ORDINATES均為NULL,而X、Y、Z不為NULL,則Spatial將其用作點幾何體的坐標;否則Spatial忽略SDO_POINT屬性。當圖層中全部為點幾何體時,建議使用SDO_POINT存儲坐標數(shù)據(jù),而不用SDO_ELEM_INFO和SDO_ORDINATES,以得到優(yōu)化的性能。

SDO_ELEM_INFO:是一變長的數(shù)值型數(shù)組,其用途是該屬性給出了SDO_ORDINATES中坐標的解釋方式。SDO_ELEM_INFO數(shù)組中,每三個數(shù)值為一組,用于解釋一個元素(ELEMENT),組中的數(shù)值的意義為:

SDO_STARTING_OFFSET:第一個數(shù)值,存放該元素的首坐標在SDO_ORDIANTES中的位置(從1開始計);SDO_GEOMETRY對象類型(續(xù))

SDO_ETYPE:第二個數(shù)值,標識元素的類型,當SDO_ETYPE取值為:1、2、1003、2003時,表示該元素是一簡單元素,其定義由SDO_ELEM_INFO中的一三數(shù)值組給出;1003表示為多邊型環(huán)的外部(坐標按逆時針順序給出),2003表示為多邊型環(huán)的內(nèi)部(坐標按順時針順序給出);4、1005、2005時,表示該元素是一組合元素,其定義由SDO_ELEM_INFO中的多個三數(shù)值組給出,其中第一個三數(shù)值組為頭三元組;;1003表示為多邊型環(huán)的外部(坐標按逆時針順序給出),2003表示為多邊型環(huán)的內(nèi)部(坐標按順時針順序給出);組合元素的子元素是連續(xù)的,即子元素的最后一個點是下一元素的第一個點,在SDO_ORDINATES中無需重復列出點坐標;SDO_INTERPRTATION:

如果SDO_ETYPE為4、1005、2005,則SDO_INTERPRTATION規(guī)定其后有多少三數(shù)值組用于解釋子元素;如果SDO_ETYPE為1、2、1003、2003,則SDO_INTERPRTATION規(guī)定該元素的坐標序列是如何解釋的;SDO_GEOMETRY對象類型(續(xù))SDO_ETYPESDO_INTERPRETATION含義0*非OracleSpatial支持的幾何類型11點1>1點集21直線串22弧線串(弧線由起止點及弧上任一點坐標給出,弧線的交點坐標只出現(xiàn)一次)1003/20031頂點間通過直線段連成的多邊形(起止頂點坐標相同)1003/20032由弧線段連成的封閉圖形(起止頂點坐標相同)1003/20033長方形(由左下角和右上角點坐標給出),本類型不用于地理數(shù)據(jù)1003/20034圓(由圓上任意三個點坐標給出)4n>1同時含直線串和弧線串的線串,n表示這些子線串的個數(shù),即還有n個(SDO_STARTING_OFFSET,SDO_ETYPE,SDO_INTERPRETATION)元組定義這些子元素1005/2005n>1同時含直線串和弧線串的多邊形,n表示這些子線串的個數(shù),即還有n個(SDO_STARTING_OFFSET,SDO_ETYPE,SDO_INTERPRETATION)元組定義這些子串SDO_GEOMETRY對象類型(續(xù))SDO_ORDINATES:變長的數(shù)值型數(shù)組,用于存放幾何對象的點的坐標值坐標的組織方式由SDO_ELEM_INFO解釋;點坐標維順序相同,即X,Y,Z,X,Y,Z,…坐標分量不能為空SDO_GEOMETRY對象類型(續(xù))GEOMETRY元數(shù)據(jù)結(jié)構(gòu)GEOMETRY元數(shù)據(jù)結(jié)構(gòu)MDSYS.SDO_GEOM_METADATA_TABLEtable:ALL_SDO_GEOM_METADATAviewUSER_SDO_GEOM_METADATAviewDBA_SDO_GEOM_METADATAview索引元數(shù)據(jù)索引元數(shù)據(jù)索引元數(shù)據(jù)視圖(用戶只讀):即有關(guān)空間索引的描述索引基本信息視圖: 索引詳細信息視圖:

ALL_SDO_INDEX_INFOview ALL_SDO_INDEX_METADATAviewUSER_SDO_INDEX_INFOview USER_SDO_INDEX_METADATAviewDBA_SDO_INDEX_INFOview DBA_SDO_INDEX_METADATAviewxxx_SDO_INDEX_INFO:INDEX_NAMETABLE_NAMECOLUMN_NAMESDO_INDEX_TYPESDO_INDEX_TABLE索引元數(shù)據(jù)(續(xù))xxx_SDO_INDEX_METADATA:

一般信息:屬主、索引名、索引表名、索引類型、是否是分區(qū)的索引、索引分區(qū)名、索引表的模式名、索引列名、索引列維數(shù)、圖層的類型、創(chuàng)建索引時提交記錄的間隔數(shù);R-tree索引信息:樹高度、樹節(jié)點數(shù)、索引維數(shù)、節(jié)點的最大子節(jié)點數(shù)、根節(jié)點的ROWID、與此索引相關(guān)的序列名、索引節(jié)點中保留空間的最小百分數(shù)(PCTFREE);

Quadtree索引信息:SDO_LEVEL、SDO_NUMTILES、SDO_MAXLEVEL;索引表的存儲信息:表空間、開始盤區(qū)大小、下一盤區(qū)大小、盤區(qū)大小增長率、最小盤區(qū)數(shù)、最大盤區(qū)數(shù)。索引數(shù)據(jù)表空間索引數(shù)據(jù)表R-tree索引列名類型內(nèi)容NODE_IDNUMBERR-tree樹中此節(jié)點的唯一標識號NODE_LEVELNUMBER節(jié)點在樹中的層次,葉節(jié)點層次為1INFOBLOB節(jié)點的其它數(shù)據(jù),包括由(child_mbr,child_rowid)對構(gòu)成的數(shù)組Quadtree索引列名類型內(nèi)容SDO_CODERAW由SDO_ROWID標識的對象的索引項,即索引片號SDO_ROWIDROWID對象所在圖層中的ROWIDSDO_STATUSVARCHAR2索引片與對象的關(guān)系:‘I’:在對象內(nèi);‘B’:在邊界上SDO_GROUPCODERAW使用混合索引時,該片所處在SDO_LEVEL級上的父索引片號測量單位支持測量單位支持涉及幾何測量的函數(shù),都有一可選的參數(shù)用來規(guī)定進行距離或面積計算時所用的計量單位。缺省的計量單位是幾何體坐標定義中所使用的單位,如米或平方米。格式:長度:‘unit=<unit_name>’

其中:unit_name的值必須來自于表:MDSYS.SDO_DIST_UNITS;

面積:‘unit=<unit_name>’

其中:unit_name的值必須來自于表:MDSYS.SDO_AREA_UNITS索引和查詢空間數(shù)據(jù)創(chuàng)建空間索引查詢空間數(shù)據(jù)空間連接創(chuàng)建空間索引創(chuàng)建空間索引

為了有效地存取空間數(shù)據(jù),必須創(chuàng)建空間索引:R-tree索引或Quadtree索引。如果因任何理由,索引沒有完全創(chuàng)建,必須使用:

DROPINDEX<index-name>FORCE;清除此不完全索引。創(chuàng)建R-tree索引在創(chuàng)建空間索引的語句中,如果沒有任何Quadtree使用的參數(shù),OracleSpatial創(chuàng)建的是R-tree索引,如:

CREATEINDEXterritory_idxONterritories(geom)INDEXTYPEISMDSYS.SPATIAL_INDEX;如果回滾段不足夠大,創(chuàng)建R-tree索引可能會失敗,回滾段大小>=100*記錄行數(shù);系統(tǒng)參數(shù)SORT_AREA_SIZE(規(guī)定用于排序操作的空間大小)影響創(chuàng)建索引所需的時間,OracleSpatial建議SORT_AREA_SIZE>=1M:

ALTERSESSIONSETSORT_AREA_SIZE=1000000;可用tablespace關(guān)鍵字規(guī)定索引表所在的表空間,該表空間既用于存放索引數(shù)據(jù),又用于創(chuàng)建索引時產(chǎn)生的臨時數(shù)據(jù)(索引創(chuàng)建后自動釋放),它們的大小為:索引表大小約:70*n;臨時數(shù)據(jù)大小約:200*n其中,n為記錄行數(shù)創(chuàng)建空間索引(續(xù))創(chuàng)建Quadtree索引(不能用于地理測量)對于Quadtree索引,CREATEINDEX語句中的SDO_LEVEL和SDO_NUMTILES參數(shù)決定了索引創(chuàng)建和維護的分片算法:SDO_LEVELSDO_NUMTILES索引類型NULL或0NULL或0B-tree>=1NULL或0固定大小片Quadtree>=1>=1混合大小片QuadtreeNULL或0>=1不支持在默認情況下,當對圖層中所有幾何體完成分片操作后,OracleSpatail進行數(shù)據(jù)庫提交操作,這可能會需要一很大的回滾段;可通過規(guī)定CREATEINDEX語句中的SDO_COMMIT_INTERVAL參數(shù)設置提交操作的間隔;只有那些在幾何體內(nèi)或在幾何體邊界上的片才記錄在空間索引數(shù)據(jù)表中;SDO_LEVEL對固定大小片Quadtree片大小的影響:索引片在一維上的長度為:Length=(upper_bound-low_bound)/2n

其中n=SDO_LEVEL限制數(shù)據(jù)的幾何類型在創(chuàng)建或重建空間索引時,可以限制圖層中的幾何體必須為某特定類型其方法是,在CREATEINDEX或ALTERINDEXREBUILD語句中規(guī)定layer_gtype參數(shù),參數(shù)可能的值為:POINT、MULTIPOINT、LINE、MULTILINE、CURVE、MULTICURVE、POLYGON、MULTIPOLYGON、COLLECTION創(chuàng)建空間索引(續(xù))SDO_LEVEL=1 SDO_LEVEL=2 SDO_LEVEL=3 SDO_LEVEL=nTILES=2*2 TILES=22*22 TILES=23*23 TILES=2n*2n創(chuàng)建空間索引(續(xù))使用分區(qū)的空間索引可以在分區(qū)的表上創(chuàng)建分區(qū)的空間索引,其好處是:減少響應時間、容易維護索引。對于分區(qū)空間索引存在如下限制:圖層表的分區(qū)鍵必須是簡單類型,不能是SDO_GEOMETRY列;分區(qū)類型必須是范圍(RANGE)分區(qū),不能是散列(hash)分區(qū)或組合(composite)分區(qū);不支持分區(qū)的合并(merging)、交換(exchanging)和從就分區(qū)中分離(splitting)出新分區(qū)。空間分區(qū)的創(chuàng)建方法,使用LOCAL關(guān)鍵字:

CREATEINDEXcounties_idxONCOUNTIES(geometry)INDEXTYPEISMDSYS.SPATIAL_INDEXLOCAL;--在默認表空間中建空間索引創(chuàng)建空間索引(續(xù))還可以為各空間索引分區(qū)指定不同的存儲參數(shù),但各分區(qū)的空間索引參數(shù)必須相同,格式為:ID…GEOMETRY………ID…GEOMETRY………ID…GEOMETRY………P1(ID<10000)P2(ID<20000)P3COUNTIESNODE_ID…INFO………P1(ID<10000)P2(ID<20000)P3COUNTIES_IDX_RT$NODE_ID…INFO………NODE_ID…INFO………創(chuàng)建空間索引(續(xù))缺省的分區(qū)參數(shù)不管圖層是否分區(qū),除了SDO_NN操作之外,其它的操作符和函數(shù)都具有相同的語義。查詢空間數(shù)據(jù)查詢空間數(shù)據(jù)基于主次過濾的查詢模型空間查詢分片法索引的重要特點:排它性(exclusion):各索引片間不重疊空間徹底性(exhaustion):索引片完全覆蓋了幾何對象查詢窗口(動態(tài)或靜態(tài)的)查詢空間數(shù)據(jù)(續(xù))主過濾(PrimaryFilter)操作:SDO_FILTERSDO_FILTER操作符僅使用空間索引數(shù)據(jù)生成主過濾的候選記錄集,語法格式:

SDO_FILTER(geometry1MDSYS.SDO_GEOMETRY,geometry2MDSYS.SDO_GEOMETRY,paramsVARCHAR2)

其中:

geometry1是圖層中的已建立空間索引幾何對象列;

geometry2是幾何對象,它可以來自于圖層,也可以動態(tài)創(chuàng)建,可以是索引過的,也可不是;

params定義本操作符的過濾準則:querytype=window|joinidxtab1=<…>idxtab2=<…>

例:返回結(jié)果是1013、1243、12、501動態(tài)查詢窗:用SDO_GEOMETRY構(gòu)造器在內(nèi)存中創(chuàng)建和索引查詢空間數(shù)據(jù)(續(xù))動態(tài)查詢窗:創(chuàng)建在綁定變量中靜態(tài)查詢窗:在另一圖層中查詢空間數(shù)據(jù)(續(xù))當使用靜態(tài)查詢窗時,空間索引的使用方式為:對B是否有空間索引?否在內(nèi)存中創(chuàng)建B有與A的SDO_LEVEL值相同的空間索引?是是利用此索引否查詢空間數(shù)據(jù)(續(xù))主次過濾(PrimaryandSecondaryFilter)操作:SDO_RELATESDO_RELATE操作符完成主過濾和次過濾兩個過程,語法格式:

SDO_FILTER(geometry1MDSYS.SDO_GEOMETRY,geometry2MDSYS.SDO_GEOMETRY,paramsVARCHAR2)

其中:

geometry1是圖層中的已建立空間索引幾何對象列;

geometry2是幾何對象,它可以來自于圖層,也可以動態(tài)創(chuàng)建,可以是索引過的,也可不是;

params定義本操作符的過濾準則:querytype=window|joinidxtab1=<…>idxtab2=<…>mask=<拓撲關(guān)系組合>

例:返回結(jié)果是1013、1243查詢空間數(shù)據(jù)(續(xù))當使用靜態(tài)查詢窗時,空間索引的使用方式與SDO_FILTER操作相同:查詢空間數(shù)據(jù)(續(xù))給定距離范圍(WithinDistance)操作:SDO_WITHIN_DISTANCE

返回落在給定幾何體距離范圍內(nèi)的幾何體,不適用于空間連接查詢。語法格式:

SDO_WITHIN_DISTANCE(geometry1MDSYS.SDO_GEOMETRY,

aGeomMDSYS.SDO_GEOMETRY,paramsVARCHAR2)

其中:

geometry1是圖層中的已建立空間索引幾何對象列;

geometry2是幾何對象,它可以來自于圖層,也可以動態(tài)創(chuàng)建,可以是索引過的,也可不是;

params定義本操作符的過濾準則:distance=<number>dxtb1=<…>querytype=‘FILTER’unit=<長度單位>

例:

查詢空間數(shù)據(jù)(續(xù))最近鄰(NearestNeighbour)操作:SDO_NN

確定與給定幾何體距離最近的幾何對象。語法格式:

SDO_NN(geometry1MDSYS.SDO_GEOMETRY,geometry2MDSYS.SDO_GEOMETRY,

paramsVARCHAR2[,numberNUMBER])

其中:

geometry1是圖層中的已建立空間索引幾何對象列;

geometry2是幾何對象,它可以來自于圖層,也可以動態(tài)創(chuàng)建,可以是索引過的,也可不是;

params定義本操作符返回的最近鄰對象個數(shù):sdo_batch_size=<number>

sdo_num_res=<number>unit=<長度單位>(與SDO_NN_DISTANCE操作結(jié)合使用)

number是與SDO_NN_DISTANCE一起使用的參數(shù)。

例:

空間連接空間連接(SpatialJoin)ID…SHAPE1…Loc12…Loc2………n…LocnALayerGEOM…IDLoc1…1Loc2…2………Locn…nBLayerAFeaureWINDOWNQUERYSpatialJoin空間連接(續(xù))對于窗口查詢,分析的是一圖層的對象與一幾何對象的拓撲關(guān)系;空間連接則是圖層對圖層的對象間的拓撲關(guān)系對于窗口查詢,選定的空間對象可以是沒有空間索引的;參與空間連接的圖層必須有相同類型的空間索引,如果是Quadtree,還必須具有相同的SDO_LEVEL例:基于主過濾SDO_FILTER的空間連接:

SELECTA.gid,B.gidFROMparksA,highwaysBWHERESDO_FILTER(A.shape,B.shape,’querytype=join’)=‘TRUE’;

基于主次過濾SDO_RELATE的空間連接:

SELECTA.gid,B.gidFROMparksA,highwaysBWHERESDO_RELATE(A.shape,B.shape,’mask=ANYINTERACTquerytype=join’)=‘TRUE’;坐標系統(tǒng)概念坐標系統(tǒng)數(shù)據(jù)結(jié)構(gòu)創(chuàng)建自定義坐標系統(tǒng)坐標系統(tǒng)轉(zhuǎn)換函數(shù)概念概念坐標系統(tǒng)(CoordinateSystem)即:給位置分配坐標和建立這些坐標間相互關(guān)系的方法。它使得將坐標解釋為現(xiàn)實世界中位置成為可能。分類:笛卡爾坐標(CartesianCoordiantes):使用過原點的正交軸定義;測量坐標系(GeodeticCoordinates,即地理坐標):通過特定的地球測量基準定義,類似于球坐標。用角度標識位置;投影坐標(ProjectedCoordinates):將地球表面的點影射到一平面上得到的笛卡爾坐標;局部坐標(LocalCoordinates):笛卡爾坐標。測量基準(Geodeticdatum)

用于表示地球形狀(通常是旋轉(zhuǎn)的扁平橢球)的方法,該方法局部或全部逼近地球表面坐標轉(zhuǎn)換(Transformation)

將一種坐標系統(tǒng)下的坐標轉(zhuǎn)化為另一坐標系下的坐標。坐標系統(tǒng)數(shù)據(jù)結(jié)構(gòu)坐標系統(tǒng)數(shù)據(jù)結(jié)構(gòu)規(guī)定有效坐標系統(tǒng)(MDSYS.CS_SRS)列類型意義CS_NAMEVARCHAR2(68)坐標系統(tǒng)名稱SRIDINTEGER坐標系統(tǒng)標識號AUTH_SRIDINTEGER坐標系統(tǒng)來源標識(Optional)AUTH_NAMEVARCHAR2(256)坐標系統(tǒng)的權(quán)威名稱WKTEXTVARCHAR2(2046)符合OpenGis協(xié)會規(guī)定的SRS定義CS_BOUNDSMDSYS.SDO_GEOMETRYNULL角度單位(MDSYS.SDO_ANGLE_UNITS)列類型意義SDO_UNITVARCHAR2(32)保留UNIT_NAMEVARCHAR2(100)角度單位名稱CONVERSION_FACTORNUMBER1單位角度相當?shù)幕《葦?shù)坐標系統(tǒng)數(shù)據(jù)結(jié)構(gòu)(續(xù))長度單位(MDSYS.SDO_DIST_UNITS)列類型意義SDO_UNITVARCHAR2長度單位名稱UNIT_NAMEVARCHAR2長度單位描述CONVERSION_FACTORNUMBER1單位角度相當?shù)拿讛?shù)基準(MDSYS.SDO_DATUMS)列類型意義NAMEVARCHAR2(64)基準名稱SHIFT_XNUMBER相對于WGS84橢球,X軸方向偏移量SHIFT_YNUMBER相對于WGS84橢球,Y軸方向偏移量SHIFT_ZNUMBER相對于WGS84橢球,Z軸方向偏移量ROTATE_XNUMBERX軸方向旋轉(zhuǎn)秒數(shù)ROTATE_YNUMBERY軸方向旋轉(zhuǎn)秒數(shù)ROTATE_ZNUMBERZ軸方向旋轉(zhuǎn)秒數(shù)SCALE_ADJUSTNUMBER移動和旋轉(zhuǎn)后,用于對X、Y、X進行調(diào)整的值坐標系統(tǒng)數(shù)據(jù)結(jié)構(gòu)(續(xù))橢球(MDSYS.SDO_ELLIPSOIDS)列類型意義NAMEVARCHAR2(64)橢球名稱SEMI_MAYOR_AXISNUMBER長軸半徑,單位是米INVERSE_FLATTENINGNUMBER扁率投影(MDSYS.SDO_PROJECTIONS)列類型意義NAMEVARCHAR2(64)投影名稱創(chuàng)建自定義坐標系統(tǒng)創(chuàng)建自定義坐標系統(tǒng)通過在MDSYS.CS_SRS表中加入一行記錄,來創(chuàng)建自定義坐標,要求該記錄滿足OpenGis規(guī)范要求的WKTEXT,定義此WKTEXT時:在規(guī)定角度單位部分,使用MDSYS.SDO_ANGLE_UNITS表中的值;在規(guī)定長度單位部分,使用MDSYS.SDO_DIST_UNITS表中的值;在規(guī)定基準部分,使用MDSYS.SDO_DATUMS表中的值或自定義的基準;在規(guī)定橢球部分,使用MDSYS.SDO_ELLIPSOIDS表中的值;在規(guī)定投影部分,使用MDSYS.SDO_PROJECTIONS表中的值。坐標系統(tǒng)轉(zhuǎn)換函數(shù)坐標系統(tǒng)轉(zhuǎn)換函數(shù)SDO_CS.TRANSFORM:將一坐標系統(tǒng)下的幾何體轉(zhuǎn)換為另一坐標系統(tǒng)下的幾何體;SDO_CS.TRANSFORM_LAYER:將一坐標系統(tǒng)下的圖層轉(zhuǎn)換為另一坐標系統(tǒng)下的圖層;SDO_CS.VIEWPORT_TRANSFORM:將一矩行轉(zhuǎn)換為一地理多邊行。線性參照系統(tǒng)概念LRS數(shù)據(jù)模型LRS空間索引LRS操作概念線性參考系統(tǒng)(LinearReferencingSystem,LRS)是將屬性與線特征相關(guān)聯(lián)的方法,廣泛用于交通和傳輸設施應用系統(tǒng)(如:公路、鐵路、輸油管、燃氣管路等)。其優(yōu)點是能通過一個參數(shù)(即其度量:measure)而不是二個,來沿著線特征進行定位。在OracleSpatial中線的度量信息直接體現(xiàn)在OracleSpatial的數(shù)據(jù)結(jié)構(gòu)中。概念幾何段(即LRSsegment,也就是LRS基本元素),有如下幾種類型:線串(Linestring):順序排列的、無分支的、連續(xù)的,如道路;多線串(Multilinestring):不連接的線串,如由湖泊隔開的高速公路;多邊形(Polygon):如環(huán)形跑道。每個幾何段至少具有起點和終點的度量(measure),也可以在幾何段的被關(guān)注的點上分配度量概念(續(xù))形狀點(shapepoints)即分配了度量信息的點,這些點用于定義幾何段。使用形狀點有兩個目的:

指明幾何段的方向標識需關(guān)注度量信息的點使用SDO_LRS.DEFINE_GEOM_SEGMENT過程定義幾何段,自動生成形狀點的度量信息。概念(續(xù))幾何段的方向(Directionofageometricsegment)從幾何段的起點沿幾何段到幾何段的終點定義為幾何段的方向。沿著幾何段的方向,度量值要么遞增要么遞減。度量(measure,linearmeasure)

在幾何段上的點的度量是其距起點或終點沿該幾何段的線性距離(lineardistance)。不要求度量與實際距離之間保持線性關(guān)系;但要求保持一定的影射關(guān)系。偏離量(offset)

點的偏離量是:沿著一幾何段,該點到此幾何段的垂直距離;沿著一幾何段方向,如果該點在左側(cè),則偏離量為正值,否則為負值(幾何段上的點,其偏離量為零)。偏離量的單位與幾何段所在的坐標系統(tǒng)使用的單位相同。概念(續(xù))度量信息傳遞(measurepopulating)幾何段上的任何度量信息都可以通過基于距離的分布自動傳遞:根據(jù)點的前一點和后一點(不是幾何段的起點和終點)的度量數(shù)據(jù)及次點在幾何段上位置自動分配其度量值概念(續(xù))度量信息不必反映實際的距離,甚至不必正比與距離:概念(續(xù))幾何段的度量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論