本文介紹空間幾何函數的基本文法及樣本。
空間幾何概念
以ST_首碼開頭的空間幾何函數支援SQL/MM標準並符合開放地理空間聯盟 (OGC) 的OpenGIS規範。空間幾何函數使用Well-Known Text(WKT)格式描述空間幾何體(例如點、線段、多邊形等),詳細說明如下表所示。
空間幾何體 | Well-Known Text(WKT)格式 |
點 | POINT (0 0) |
線段 | LINESTRING (0 0, 1 1, 1 2) |
多邊形 | POLYGON((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)) |
多點 | MULTIPOINT(0 0, 1 2) |
多線段 | MULTILINESTRING((0 0, 1 1, 1 2), (2 3, 3 2, 5 4)) |
多個多邊形 | MULTIPOLYGON(((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1))) |
空間幾何體集合 | GEOMETRYCOLLECTION(POINT(2 3), LINESTRING(2 3, 3 4)) |
函數列表
分類 | 函數名稱 | 文法 | 說明 | 支援SQL | 支援SPL |
構造空間實體 | ST_AsText(x) | 將一個空間幾何體轉變為WKT格式的文本。 | √ | × | |
ST_GeometryFromText(x) | 根據輸入的WKT文本構造一個空間幾何體。 | √ | × | ||
ST_LineFromText(x) | 根據輸入的WKT文本構造一條線段。 | √ | × | ||
ST_Polygon(x) | 根據輸入的WKT文本構造一個多邊形。 | √ | × | ||
ST_Point(x, y) | 根據輸入的WKT文本構造一個點。 | √ | × | ||
運算子 | ST_Boundary(x) | 返回空間幾何體的邊界。 | √ | × | |
ST_Buffer(x, distance) | 返回距離指定空間幾何體一定距離的空間幾何體。 | √ | × | ||
ST_Difference(x, y) | 返回兩個空間幾何體不同點的集合。 | √ | × | ||
ST_Envelope(x) | 返回空間幾何體的最小邊界框。 | √ | × | ||
ST_ExteriorRing(x) | 返回空間幾何體的外環(線段形式)。 | √ | × | ||
ST_Intersection(x, y) | 返回兩個空間幾何體的交集點。 | √ | × | ||
ST_SymDifference(x, y) | 返回兩個空間幾何體的不同點,然後組成一個新的空間幾何體。 | √ | × | ||
空間關係判斷 | ST_Contains(x, y) | 判斷第一個空間幾何體是否包含第二個空間幾何體(邊界可存在交集)。如果包含,則返回true。 | √ | × | |
ST_Crosses(x, y) | 判斷兩個空間幾何體是否存在相同的內部點。如果存在,則返回true。 | √ | × | ||
ST_Disjoint(x, y) | 判斷兩個空間幾何體是否沒有任何交集。 如果沒有,則返回true。 | √ | × | ||
ST_Equals(x, y) | 判斷兩個空間幾何體是否完全相同。如果是,則返回true。 | √ | × | ||
ST_Intersects(x, y) | 判斷兩個空間幾何體的平面投影是否存在共同點。如果是,則返回true。 | √ | × | ||
ST_Overlaps(x, y) | 判斷兩個空間幾何體的維度是否相同。如果兩個空間幾何體的維度相同且不是內含項目關聯性,則返回true。 | √ | × | ||
ST_Relate(x, y, patternMatrix string) | 判斷兩個空間幾何體是否相關。如果是,則返回true。 | √ | × | ||
ST_Touches(x, y) | 判斷兩個空間幾何體是否只有邊界存在關聯,沒有共同的內部點。如果是,則返回true。 | √ | × | ||
ST_Within(x, y) | 判斷第一個空間幾何體是否完全在第二個空間幾何體內部(邊界無交集)。如果是,則返回true。 | √ | × | ||
Accessors | ST_Area(x) | 使用歐幾裡得測量法計算空間幾何體在二維平面上的投影面積。 | √ | × | |
ST_Centroid(x) | 返回空間幾何實體的中心點。 | √ | × | ||
ST_CoordDim(x) | 返回空間幾何體的座標維度。 | √ | × | ||
ST_Dimension(x) | 返回空間幾何實體的固有維度,必須小於或等於座標維度。 | √ | × | ||
ST_Distance(x, y) | 計算兩個空間幾何體之間的最小距離。 | √ | × | ||
ST_EndPoint(x) | 返回線段中的最後一個點。 | √ | × | ||
ST_IsClosed(x) | 判斷輸入的空間幾何體是否封閉。如果是,則返回true。 | √ | × | ||
ST_IsEmpty(x) | 判斷輸入的空間幾何體是否為空白。如果是,則返回true。 | √ | × | ||
ST_IsRing(x) | 判斷輸入的空間幾何體是否為閉合的簡單線段(環)。如果是,則返回true。 | √ | × | ||
ST_Length(x) | 使用歐幾裡得測量法計算線段的二維投影長度。如果存在多條線段,則返回所有線段的長度之和。 | √ | × | ||
ST_NumPoints(x) | 返回空間幾何體中點的個數。 | √ | × | ||
ST_NumInteriorRing(x) | 計算空間幾何體中內部環的數量。 | √ | × | ||
ST_StartPoint(x) | 返回線段中的第一個點。 | √ | × | ||
ST_X(x) | 返回輸入焦點的第一個X軸座標。 | √ | × | ||
ST_XMax(x) | 返回空間幾何體的第一個最大的X軸座標。 | √ | × | ||
ST_XMin(x) | 返回空間幾何體的第一個最小的X軸座標。 | √ | × | ||
ST_Y(x) | 返回輸入焦點的第一個Y軸座標。 | √ | × | ||
ST_YMax(x) | 返回空間幾何體的第一個最大的Y軸座標。 | √ | × | ||
ST_YMin(x) | 返回幾何體的第一個最小的Y軸座標。 | √ | × | ||
Bing圖塊 | bing_tile(x, y, zoom_level) | 通過X座標、Y座標和縮放層級構造一個Bing圖塊。 | √ | × | |
bing_tile(quadKey) | 通過四叉樹鍵構造一個Bing圖塊。 | √ | × | ||
bing_tile_at(x, y, zoom_level) | 通過經緯度和縮放層級構造一個Bing圖塊。 | √ | × | ||
bing_tile_coordinates(x) | 返回目標Bing圖塊對應的X座標和Y座標。 | √ | × | ||
bing_tile_polygon(x) | 返回目標Bing圖塊的多邊形格式。 | √ | × | ||
bing_tile_quadkey(x) | 返回目標Bing圖塊的四叉樹鍵。 | √ | × | ||
bing_tile_zoom_level(x) | 返回目標Bing圖塊的縮放層級。 | √ | × |
ST_AsText函數
ST_AsText函數用於將一個空間幾何體轉變成WKT文本。
文法
ST_AsText(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
varchar類型。
樣本
將一個點轉變成WKT格式的文本。
查詢和分析語句
* | SELECT ST_AsText(ST_Point(1,1))
查詢和分析結果
ST_GeometryFromText函數
ST_GeometryFromText函數會根據您輸入的WKT文本構造一個空間幾何體。
文法
ST_GeometryFromText(x)
參數說明
參數 | 說明 |
x | 參數值為varchar類型。 |
傳回值類型
geometry類型。
樣本
構造多個多邊形。
查詢和分析語句
* | SELECT ST_GeometryFromText('multipolygon(((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))')
查詢和分析結果
ST_LineFromText函數
ST_LineFromText函數會根據您輸入的WKT文本構造一條線段。
文法
ST_LineFromText(x)
參數說明
參數 | 說明 |
x | 參數值為varchar類型。 |
傳回值類型
linestring類型。
樣本
構造一條線段。
查詢和分析語句
* | SELECT ST_LineFromText('linestring(10 10,20 20)')
查詢和分析結果
ST_Polygon函數
ST_Polygon函數會根據您輸入的WKT文本構造一個多邊形。
文法
ST_Polygon(x)
參數說明
參數 | 說明 |
x | 參數值為varchar類型。 |
傳回值類型
polygon類型。
樣本
構造一個多邊形。
查詢和分析語句
* | SELECT ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))')
查詢和分析結果
ST_Point函數
ST_Point函數會根據您輸入的WKT文本構造一個點。
文法
ST_Point(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
point類型。
樣本
構造一個點。
查詢和分析語句
* | SELECT ST_Point(0,0)
查詢和分析結果
ST_Boundary函數
ST_Boundary函數用於返回空間幾何體的邊界。
點的邊界為空白,即返回POINT EMPTY。
線段的邊界由線段的端點組成。
多邊形的邊界由構成多邊形的外環及其所有內環的線段組成。
文法
ST_Boundary(x)
參數說明
參數 | 說明 |
x | 參數值為geography類型。 |
傳回值類型
geography類型。
樣本
使用ST_Polygon函數構造一個多邊形,然後使用ST_Boundary返回多邊形的邊界。
查詢和分析語句
* | SELECT ST_Boundary(ST_Polygon('polygon((10 10,10 20,20 20,20 15,10 10))'))
查詢和分析結果
ST_Buffer函數
ST_Buffer函數用於返回距離指定空間幾何體一定距離的空間幾何體。
文法
ST_Buffer(x, distance)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
distance | 距離。 |
傳回值類型
geometry類型。
樣本
使用ST_Point函數構造一個點,然後使用ST_Buffer函數返回距離該點一定距離的多邊形。
查詢和分析語句
* | SELECT ST_Buffer(ST_Point(1,1),1)
查詢和分析結果
ST_Difference函數
ST_Difference函數用於返回兩個空間幾何體不同點的集合。
文法
ST_Difference(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
geometry類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Difference函數返回兩個空間幾何體不同點的集合。
查詢和分析語句
* | SELECT ST_Difference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,0 15,0 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) ) AS "Difference"
查詢和分析結果
ST_Envelope函數
ST_Envelope函數用於返回空間幾何體的最小邊界框。
文法
ST_Envelope(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
geometry類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_Envelope函數返回該空間幾何體的最小邊界框。
查詢和分析語句
* | SELECT ST_Envelope( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_ExteriorRing函數
ST_ExteriorRing函數用於返回空間幾何體的外環(線段形式)。
文法
ST_ExteriorRing(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
geometry類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_ExteriorRing函數返回該空間幾何體的外環。
查詢和分析語句
* | SELECT ST_ExteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_Intersection函數
ST_Intersection函數用於返回兩個空間幾何體的交集點。
文法
ST_Intersection(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
geometry類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Intersection函數返回兩個空間幾何體的交集點。
查詢和分析語句
* | SELECT ST_Intersection( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_SymDifference函數
ST_SymDifference函數用於返回兩個空間幾何體的不同點,然後組成一個新的空間幾何體。
文法
ST_SymDifference(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
geometry類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_SymDifference函數返回兩個空間幾何體的不同點,組成一個新的空間幾何體。
查詢和分析語句
* | SELECT ST_SymDifference( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_Contains函數
ST_Contains函數用於判斷第一個空間幾何體是否包含第二個空間幾何體(邊界可存在交集)。如果包含,則返回true。
文法
ST_Contains(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Contains函數判斷第一個空間幾何體是否包含第二個空間幾何體(邊界可存在交集)。
查詢和分析語句
* | SELECT ST_Contains( ST_GeometryFromText( 'polygon((10 10,10 20,20 20,20 15,10 10))' ), ST_GeometryFromText( 'point(11 11)' ) )
查詢和分析結果
ST_Crosses函數
ST_Crosses函數用於判斷兩個空間幾何體是否存在相同的內部點。如果存在,則返回true。
文法
ST_Crosses(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Crosses函數判斷兩個空間幾何體是否存在相同的內部點。
查詢和分析語句
* | SELECT ST_Crosses( ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10, 10 20, 20 20, 20 15 , 10 10), (50 40, 50 50, 60 50, 60 40, 50 50)))' ) )
查詢和分析結果
ST_Disjoint函數
ST_Disjoint函數用於判斷兩個空間幾何體是否沒有任何交集。 如果沒有,則返回true。
文法
ST_Disjoint(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Disjoint函數判斷兩個空間幾何體是否存在交集。
查詢和分析語句
* | SELECT ST_Disjoint( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_Equals函數
ST_Equals函數用於判斷兩個空間幾何體是否完全相同。如果是,則返回true。
文法
ST_Equals(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Equals函數判斷兩個空間幾何體是否完全相同。
查詢和分析語句
* | SELECT ST_Equals( ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon(((10 10,10 20,20 20,20 15,10 10),(50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_Intersects函數
ST_Intersects函數用於判斷兩個空間幾何體的平面投影是否存在共同點。如果是,則返回true。
文法
ST_Intersects(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Intersects函數判斷兩個空間幾何體的平面投影是否存在共同點。
查詢和分析語句
* | SELECT ST_Intersects( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_Overlaps函數
ST_Overlaps函數用於判斷兩個空間幾何體的維度是否相同。如果兩個空間幾何體的維度相同且不是內含項目關聯性,則返回true。
文法
ST_Overlaps(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Overlaps函數判斷兩個空間幾何體的維度是否相同。
查詢和分析語句
* | SELECT ST_Overlaps( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_Relate函數
ST_Relate函數用於判斷兩個空間幾何體是否相關(內部或邊界以任何方式相關)。如果是,則返回true。
文法
ST_Relate(x, y, patternMatrix string)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
patternMatrix string | DE-9IM模式矩陣字串,參數值為varchar類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Relate函數判斷兩個空間幾何體是否相關。
查詢和分析語句
* | SELECT ST_Relate( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), '****T****' )
查詢和分析結果
ST_Touches函數
ST_Touches函數用於判斷兩個空間幾何體是否只有邊界存在關聯,沒有共同的內部點。如果是,則返回true。
文法
ST_Touches(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Touches函數判斷兩個空間幾何體是否只有邊界存在關聯,沒有共同的內部點。
查詢和分析語句
* | SELECT ST_Touches( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_Within函數
ST_Within函數用於判斷第一個空間幾何體是否完全在第二個空間幾何體內部(邊界無交集)。如果是,則返回true。
文法
ST_Within(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_Within函數判斷第一個空間幾何體是否完全在第二個空間幾何體內部。
查詢和分析語句
* | SELECT ST_Within( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ) )
查詢和分析結果
ST_Area函數
ST_Area函數使用歐幾裡得測量法計算空間幾何體在二維平面上的投影面積。
文法
ST_Area(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
double類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_AreaFunction Compute該空間幾何體在二維平面上的投影面積。
查詢和分析語句
* | SELECT ST_Area( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_Centroid函數
ST_Centroid函數用於返回空間幾何體的中心點。
文法
ST_Centroid(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
geometry類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_Centroid函數返回該空間幾何體的中心點。
查詢和分析語句
* | SELECT ST_Centroid( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_CoordDim函數
ST_CoordDim函數用於返回空間幾何體的座標維度。
文法
ST_CoordDim(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
bigint類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_CoordDim函數返回該空間幾何體的座標維度。
查詢和分析語句
* | SELECT ST_CoordDim( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_Dimension函數
ST_Dimension函數用於返回空間幾何體的固有維度,必須小於或等於座標維度。
文法
ST_Dimension(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。
|
傳回值類型
bigint類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_Dimension函數返回該空間幾何體的固有維度。
查詢和分析語句
* | SELECT ST_Dimension( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_Distance函數
ST_Distance函數用於計算兩個空間幾何體之間的最小距離。
文法
ST_Distance(x, y)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
y | 參數值為geometry類型。 |
傳回值類型
double類型。
樣本
使用ST_GeometryFromText函數構造兩個空間幾何體,然後使用ST_DistanceFunction Compute兩個空間幾何體之間的最小距離。
查詢和分析語句
* | SELECT ST_Distance( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 50)))' ), ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_EndPoint函數
ST_EndPoint函數用於返回線段中的最後一個點。
文法
ST_EndPoint(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
point類型。
樣本
使用ST_LineFromText函數構造一條線段,然後使用ST_EndPoint函數返回線段中的最後一個點。
查詢和分析語句
* | SELECT ST_EndPoint( ST_LineFromText( 'linestring (10 10,20 20)' ) )
查詢和分析結果
ST_IsClosed函數
ST_IsClosed函數用於判斷空間幾何體是否封閉。如果是,則返回true。
文法
ST_IsClosed(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_LineFromText函數構造一條線段,然後使用ST_IsClosed函數判斷該線段是否封閉。
查詢和分析語句
* | SELECT ST_IsClosed( ST_LineFromText( 'linestring (10.05 10.28 , 20.95 20.89 )' ) )
查詢和分析結果
ST_IsEmpty函數
ST_IsEmpty函數用於判斷輸入的空間幾何體是否為空白。如果是,則返回true。
文法
ST_IsEmpty(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_Point函數構造一個點,然後使用ST_IsEmpty函數判斷該點是否為空白。
查詢和分析語句
* | SELECT ST_IsEmpty(ST_Point(1,1))
查詢和分析結果
ST_IsRing函數
ST_IsRing函數用於判斷輸入的空間幾何體是否為閉合的簡單線段(環)。如果是,則返回true。
文法
ST_IsRing(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
boolean類型。
樣本
使用ST_LineFromText函數構造一條線段,然後使用ST_IsRing函數判斷該線段是否為一個環。
查詢和分析語句
* | SELECT ST_IsRing( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89 )' ) )
查詢和分析結果
ST_Length函數
ST_Length函數使用歐幾裡得測量法計算線段的二維投影長度。如果存在多條線段,則返回所有線段的長度之和。
文法
ST_Length(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
double類型。
樣本
使用ST_LineFromText函數構造一條線段,然後使用ST_LengthFunction Compute線段的長度。
查詢和分析語句
* | SELECT ST_Length( ST_LineFromText( 'linestring (10.05 10.28,20.95 20.89)' ) )
查詢和分析結果
ST_NumPoints函數
ST_NumPoints函數用於返回空間幾何體中點的個數。
文法
ST_NumPoints(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
bigint類型。
樣本
使用ST_LineFromText函數構造一條線段,然後使用ST_NumPoints函數返回線段中點的個數。
查詢和分析語句
* | SELECT ST_NumPoints( ST_LineFromText('linestring (10 10,20 20)') )
查詢和分析結果
ST_NumInteriorRing函數
ST_NumInteriorRing函數用於計算空間幾何體中內部環的數量。
文法
ST_NumInteriorRing(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
bigint類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_NumInteriorRing函數返回該幾何體中內部環的數量。
查詢和分析語句
* | SELECT ST_NumInteriorRing( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_StartPoint函數
ST_StartPoint函數用於返回線段中的第一個點。
文法
ST_StartPoint(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
point類型。
樣本
使用ST_LineFromText函數構造一條線段,然後使用ST_StartPoint函數返回該線段中的第一個點。
查詢和分析語句
* | SELECT ST_StartPoint( ST_LineFromText( 'linestring (10 10,20 20 )' ) )
查詢和分析結果
ST_X函數
ST_X函數用於返回輸入焦點的X軸座標。
文法
ST_X(x)
參數說明
參數 | 說明 |
x | 參數值為point類型。 |
傳回值類型
double類型。
樣本
使用ST_Point函數構造一個點,然後使用ST_X函數返回該點的X軸座標。
查詢和分析語句
* | SELECT ST_X(ST_Point(1,3))
查詢和分析結果
ST_XMax函數
ST_XMax函數用於返回空間幾何體的第一個最大的X軸座標。
文法
ST_XMax(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
double類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_XMax函數返回該空間幾何體的第一個最大的X軸座標。
查詢和分析語句
* | SELECT ST_XMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_XMin函數
ST_XMin函數用於返回空間幾何體的第一個最小的X軸座標。
文法
ST_XMin(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
double類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_XMin函數返回該空間幾何體的第一個最小的X軸座標。
查詢和分析語句
* | SELECT ST_XMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_Y函數
ST_Y函數用於返回輸入焦點的Y軸座標。
文法
ST_Y(x)
參數說明
參數 | 說明 |
x | 參數值為point類型。 |
傳回值類型
double類型。
樣本
使用ST_Point函數構造一個點,然後使用ST_Y函數返回該點的Y軸座標。
查詢和分析語句
* | SELECT ST_Y(ST_Point(1,3))
查詢和分析結果
ST_YMax函數
ST_YMax函數用於返回空間幾何體的第一個最大的Y軸座標。
文法
ST_YMax(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
double類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_YMax函數返回該空間幾何體的第一個最大的Y軸座標。
查詢和分析語句
* | SELECT ST_YMax( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
ST_YMin函數
ST_YMin函數用於返回空間幾何體的第一個最小的Y軸座標。
文法
ST_YMin(x)
參數說明
參數 | 說明 |
x | 參數值為geometry類型。 |
傳回值類型
double類型。
樣本
使用ST_GeometryFromText函數構造一個空間幾何體,然後使用ST_YMin函數返回空間幾何體的第一個最小的Y軸座標。
查詢和分析語句
* | SELECT ST_YMin( ST_GeometryFromText( 'multipolygon (((10 10,10 20,20 20,20 15,10 10), (50 40,50 50,60 50,60 40,50 40)))' ) )
查詢和分析結果
bing_tile函數
bing_tile函數用於構造一個Bing圖塊。
文法
通過X座標、Y座標和縮放層級構造一個Bing圖塊。
bing_tile(x, y, zoom_level)
通過四叉樹鍵構造一個Bing圖塊。
bing_tile(quadKey)
參數說明
參數 | 說明 |
x | X座標,參數值為integer類型。 |
y | Y座標,參數值為integer類型。 |
zoom_level | 縮放層級,取值範圍為[1,23],參數值為integer類型。 |
quadKey | 四叉樹鍵。 |
傳回值類型
BingTile類型。
樣本
樣本1:通過X座標、Y座標和縮放層級構造一個Bing圖塊。
查詢和分析語句
* | SELECT bing_tile(10, 20, 20)
查詢和分析結果
樣本2:通過四叉樹鍵構造一個Bing圖塊。
查詢和分析語句
* | SELECT bing_tile(bing_tile_quadkey(bing_tile(10, 20, 20)))
查詢和分析結果
bing_tile_at函數
bing_tile_at函數通過經緯度和縮放層級構造一個Bing圖塊。
文法
bing_tile_at(x, y, zoom_level)
參數說明
參數 | 說明 |
x | 緯度,取值範圍為[-85.05112878,85.05112878],參數值為double類型。 |
y | 經度,取值範圍為[-180,180],參數值為double類型。 |
zoom_level | 縮放層級,取值範圍為[1,23],參數值為integer類型。 |
傳回值類型
BingTile類型。
樣本
建立一個Bing圖塊。
查詢和分析語句
* | SELECT bing_tile_at(47.265511, -122.465691, 12)
查詢和分析結果
bing_tile_coordinates函數
bing_tile_coordinates函數用於返回目標Bing圖塊對應的X座標和Y座標。
文法
bing_tile_coordinates(x)
參數說明
參數 | 說明 |
x | 參數值為BingTile類型。 |
傳回值類型
array(integer,integer)類型。
樣本
通過輸入的Bing圖塊返回對應的X座標和Y座標。
查詢和分析語句
* | SELECT bing_tile_coordinates(bing_tile_at(47.265511, -122.465691, 12))
查詢和分析結果
bing_tile_polygon函數
bing_tile_polygon函數用於返回目標Bing圖塊的多邊形格式。
文法
bing_tile_polygon(x)
參數說明
參數 | 說明 |
x | 參數值為BingTile類型。 |
傳回值類型
polygon類型。
樣本
返回Bing圖塊的多邊形格式。
查詢和分析語句
* | SELECT bing_tile_polygon(bing_tile_at(30.26, 120.19, 12))
查詢和分析結果
bing_tile_quadkey函數
bing_tile_quadkey函數用於返回目標Bing圖塊的四叉樹鍵。
文法
bing_tile_quadkey(x)
參數說明
參數 | 說明 |
x | 參數值為BingTile類型。 |
傳回值類型
varchar類型。
樣本
返回目標Bing圖塊的四叉樹鍵。
查詢和分析語句
* | SELECT bing_tile_quadkey(bing_tile(10, 20, 20))
查詢和分析結果
bing_tile_zoom_level函數
bing_tile_zoom_level函數用於返回目標Bing圖塊的縮放層級。
文法
bing_tile_zoom_level(x)
參數說明
參數 | 說明 |
x | 參數值為BingTile類型。 |
傳回值類型
double類型。
樣本
返回目標Bing圖塊的縮放層級。
查詢和分析語句
* | SELECT bing_tile_zoom_level(bing_tile(10, 20, 20))
查詢和分析結果