Oracle Spatial操作geometry方法____Oracle

來源:互聯網
上載者:User

Oracle Spatial中SDO_GEOMETRY類型:

CREATE TYPE SDO_GEOMETRY AS OBJECT(

SDO_GTYPE NUMBER,--幾何類型,如點線面

SDO_SRID NUMBER,--幾何的空間參考座標系

SDO_POINT SDO_POINT_TYPE,--如果幾何為點類型,則儲存點座標,否則為空白

SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,--定義如何理解SDO_ORDINATES中的座標序列

SDO_ORDINATES SDO_ORDINATE_ARRAY--儲存實際座標,以X,Y以及不同點之間以逗號隔開

)

 

兩個對象之間關係:

RELATE

SDO_GEOM.RELATE --確定兩個對象的互動方式

eg:

SDO_GEOM.RELATE(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY,mask IN VARCHAR2, geom2 IN SDO_GEOMETRY,dim2 IN SDO_DIM_ARRAY) RETURN VARCHAR2;SDO_GEOM.RELATE(geom1 IN SDO_GEOMETRY,mask IN VARCHAR2,geom2 IN SDO_GEOMETRY, tol IN NUMBER)RETURN VARCHAR2;--tol容許的精度範圍

mask:

ANYINTERACT:geom2落在geom1面上,包括邊上

CONTAINS:geom2完全包含在geom1幾何對象中,並且兩個幾何對象的邊沒有交叉

COVEREDBY:geom1完全包含在geom2中,並且兩個幾何對象的邊有一個或多個點相互重疊

COVERS:geom2完全包含在geom1中,並且兩個幾何對象的邊有一個或多個點相互重疊

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

EQUAL:兩個幾何相等

INSIDE:geom1完全包含在geom2幾何對象中,並且兩個幾何對象的邊沒有交叉

ON:geom1的邊和內部的線完全在geom2上

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

OVERLAPBDYINTERSECT:兩個幾何對象叫迭,並且邊有部分交叉

TOUCH:兩個結合對象有共同的邊,但沒有交叉

 

WITHIN_DISTANCE

SDO_GEOM.WITHIN_DISTANCE --確定兩個幾何是否在彼此指定的距離之內

eg:

SDO_GEOM.WITHIN_DISTANCE(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY,dist IN NUMBER, geom2 IN SDO_GEOMETRY,dim2 IN SDO_DIM_ARRAY[, units IN VARCHAR2]) RETURN VARCHAR2;SDO_GEOM.WITHIN_DISTANCE(geom1 IN SDO_GEOMETRY,dist IN NUMBER,geom2 IN SDO_GEOMETRY,tol IN NUMBER[, units IN VARCHAR2]) RETURN VARCHAR2;

 

驗證:

VALIDATE_GEOMETRY_WITH_CONTEXT

SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT --確定幾何是否有效,如果幾何無效,則返回上下文資訊

eg:

SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(theGeometry IN SDO_GEOMETRY, theDimInfo IN SDO_DIM_ARRAY,conditional IN VARCHAR2 DEFAULT 'TRUE') RETURN VARCHAR2;SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT(theGeometry IN SDO_GEOMETRY,tolerance IN NUMBER,conditional IN VARCHAR2 DEFAULT 'TRUE') RETURN VARCHAR2;

 

VALIDATE_LAYER_WITH_CONTEXT

SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT --確定儲存在列中的所有幾何是否有效,並返回有關任何無效幾何的上下文資訊

eg:

SDO_GEOM.VALIDATE_LAYER_WITH_CONTEXT(geom_table IN VARCHAR2,geom_column IN VARCHAR2,result_table IN VARCHAR2,commit_interval IN NUMBER DEFAULT -1,conditional IN VARCHAR2 DEFAULT 'TRUE');

 

單對象操作:

SDO_ARC_DENSIFY

SDO_GEOM.SDO_ARC_DENSIFY --簡化,將圓弧簡化成由直線組成的近似多段線;將圓近似成N多邊形

eg:

SDO_GEOM.SDO_ARC_DENSIFY(geom IN SDO_GEOMETRY,dim IN SDO_DIM_ARRAY, params IN VARCHAR2) RETURN SDO_GEOMETRY;SDO_GEOM.SDO_ARC_DENSIFY(geom IN SDO_GEOMETRY,tol IN NUMBER, params IN VARCHAR2) RETURN SDO_GEOMETRY;

 

SDO_AREA

SDO_GEOM.SDO_AREA --計算多邊形的面積

eg:

SDO_GEOM.SDO_AREA(geom IN SDO_GEOMETRY,dim IN SDO_DIM_ARRAY [, unit IN VARCHAR2]) RETURN NUMBER;SDO_GEOM.SDO_AREA(geom IN SDO_GEOMETRY,tol IN NUMBER [, unit IN VARCHAR2]) RETURN NUMBER;

 

SDO_BUFFER

SDO_GEOM.SDO_BUFFER --在幾何體外部或內部產生緩衝區

eg:

SDO_GEOM.SDO_BUFFER(geom IN SDO_GEOMETRY,dim IN SDO_DIM_ARRAY,dist IN NUMBER[, params IN VARCHAR2]) RETURN SDO_GEOMETRY;SDO_GEOM.SDO_BUFFER(geom IN SDO_GEOMETRY,dist IN NUMBER,tol IN NUMBER[, params IN VARCHAR2]) RETURN SDO_GEOMETRY;

 

SDO_CENTROID

SDO_GEOM.SDO_CENTROID --計算多邊形的質心

eg:

SDO_GEOM.SDO_CENTROID(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY;SDO_GEOM.SDO_CENTROID(geom1 IN SDO_GEOMETRY,tol IN NUMBER) RETURN SDO_GEOMETRY;

 

SDO_CONVEXHULL

SDO_GEOM.SDO_CONVEXHULL --返回幾何對象的凸包的多邊形類型對象

eg:

SDO_GEOM.SDO_CONVEXHULL(geom1 IN SDO_GEOMETRY,dim1 IN SDO_DIM_ARRAY) RETURN SDO_GEOMETRY;SDO_GEOM.SDO_CONVEXHULL(geom1 IN SDO_GEOMETRY, tol IN NUMBER) RETURN SDO_GEOMETRY;

 

SDO_LENGTH

SDO_GEOM.SDO_LENGTH --計算幾何的長度或周長

eg:

SDO_GEOM.SDO_LENGTH(geom IN SDO_GEOMETRY,dim IN SDO_DIM_ARRAY[, unit IN VARCHAR2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.