適用於:
Databricks SQL
Databricks Runtime 17.1 和更新版本
Important
這項功能目前處於 公開預覽版。
ST 地理空間函數可對型別 GEOGRAPHY 和/或 GEOMETRY 的物件運作,或者允許從標準或常用的地理空間格式構建 GEOGRAPHY 和 GEOMETRY 的值,或將 GEOGRAPHY 和 GEOMETRY 的值匯出為標準或常用的地理空間格式。
另請參閱:
匯入 Databricks 函式以取得 ST 函式 (Databricks Runtime)
Databricks SQL 和 Spark SQL 不需要匯入。
若要在筆記本中匯入 Python 或 Scala 的 ST 函式,請使用下列命令:
Python
from pyspark.databricks.sql import functions as dbf
Scala
import com.databricks.sql.functions._
ST 地理空間函式清單 (Databricks SQL)
Import
| Function | Description |
|---|---|
| st_geogfromgeojson(geojsonExpr) |
GEOGRAPHY(4326) 從其 GeoJSON 表示法中傳回一個值。 |
| st_geogfromtext(wktExpr) | 從其 WKT 表示法返回 GEOGRAPHY(4326) 值。 |
| st_geogfromwkb(wktExpr) | 從其 WKB 表示法中傳回 GEOGRAPHY(4326) 值。 |
| st_geogfromwkt(wktExpr) | 從其 WKT 表示法返回 GEOGRAPHY(4326) 值。 |
| st_geomfromewkb(wktExpr) | 從其 EWKB 表示法返回 GEOMETRY(ANY) 值。 |
| st_geomfromgeohash(geohashExpr) | 傳回與輸入 geohash 值相對應的 geohash 格線方塊作為 2D 多邊形 GEOMETRY 值。 |
| st_geomfromgeojson(geojsonExpr) |
GEOMETRY(4326) 從其 GeoJSON 表示法中傳回一個值。 |
| st_geomfromtext(wktExpr[, sridExpr]) | 從其 WKT 表示中返回GEOMETRY(srid)值或GEOMETRY(ANY)值,並將其 SRID 值設定為sridExpr的值;如果0省略,則設為sridExpr的值。 |
| st_geomfromwkb(wkbExpr[, sridExpr]) | 返回從 WKB 表示法中的GEOMETRY(srid)或GEOMETRY(ANY)值,並將其 SRID 設置為sridExpr的值;如果省略0,則設置為sridExpr的值。 |
| st_geomfromwkt(wktExpr[, sridExpr]) | 從其 WKT 表示中返回GEOMETRY(srid)值或GEOMETRY(ANY)值,並將其 SRID 值設定為sridExpr的值;如果0省略,則設為sridExpr的值。 |
| st_pointfromgeohash(地理雜湊) | 傳回對應於輸入地理雜湊值的地理雜湊網格方塊中心作為一個2D點幾何。 |
| to_geography(georepExpr) | 傳回其 GeoJSON、WKB 或 WKT 表示法中的 GEOGRAPHY(ANY) 值。 |
| to_geometry(georepExpr) |
GEOMETRY(ANY) 會從其 EWKB、GeoJSON、WKB 或 WKT 表示法中傳回值。 |
| try_to_geography(georepExpr) | 返回GEOGRAPHY(ANY)值,從其 GeoJSON、WKB 或 WKT 表示法中提取或當NULL輸入表示無效時返回值。 |
| try_to_geometry(georepExpr) |
GEOMETRY(ANY) 傳回其 EWKB、GeoJSON、WKB 或 WKT 表示形式的值,如果輸入表示方式無效,則傳回 NULL。 |
Export
| Function | Description |
|---|---|
| st_asbinary(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的 WKB 表示法做為 BINARY 值。 |
| st_asewkb(geoExpr) | 傳回輸入 GEOMETRY 值的 EWKB 表示法做為 BINARY 值。 |
| st_asgeojson(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的 GeoJSON 表示法做為 STRING 值。 |
| st_asewkt(地理經驗) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的 EWKT 表示法做為 STRING 值。 |
| st_astext(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的 WKT 表示法做為 STRING 值。 |
| st_aswkb(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的 WKB 表示法做為 BINARY 值。 |
| st_aswkt(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的 WKT 表示法做為 STRING 值。 |
| st_geohash(geoExpr [, precisionExpr]) | 傳回指定精度的輸入幾何的地理雜湊。 |
Measurements
| Function | Description |
|---|---|
| st_area(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的區域。 |
| st_distance(geoExpr1, geoExpr2) | 傳回兩個輸入 GEOMETRY 值之間的 2D 笛卡爾距離。 |
| st_distancesphere(geoExpr1, geoExpr2) | 傳回兩個點 GEOMETRY 值之間的球面距離 (以公尺為單位),在半徑為 WGS84 橢球體平均半徑的球體上測量。 |
| st_distancespheroid(geoExpr1, geoExpr2) | 傳回 WGS84 橢球體上兩個點 GEOMETRY 值之間的測地線距離 (以公尺為單位)。 |
| st_length(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的長度。 |
| st_perimeter(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的周邊。 |
Constructors
| Function | Description |
|---|---|
| st_makeline(地理陣列) | 傳回線串 GEOMETRY 值,其點是幾何圖形輸入陣列中幾何圖形的非空白點,預期為點、線串或多點。 |
| st_makepolygon(outer[, innerArray]) | 從輸入外部界限和內部界限的選擇性陣列建構多邊形 GEOMETRY 值,以封閉線串表示。 |
| st_point(x, y [, srid]) | 傳回具有指定 X 和 Y 座標以及 SRID 值的點 GEOMETRY 值 (如果提供)。 |
Accessors
| Function | Description |
|---|---|
| st_dimension(geoExpr) | 傳回 2D 投影的拓撲維度的 GEOMETRY 值。 |
| st_dump(geoExpr) | 傳回包含輸入幾何圖形中單一幾何圖形的陣列。 |
| st_endpoint(geoExpr) | 如果輸入地理空間值是非空白的行字串,則傳回輸入 GEOGRAPHY 或 GEOMETRY 值的最後一個點。 |
| st_envelope(地理Expr) | 傳回 2D 笛卡爾 GEOMETRY 值,代表輸入 GEOMETRY 值的 2D 軸對齊最小邊界框 (包絡)。 |
| st_envelope_agg(geoCol) | 傳回數據行中所有幾何的包絡,如果該列有零行數據,或僅包含NULL值,則傳回NULL。 |
| st_exteriorring(geoExpr) | 傳回輸入多邊形 GEOGRAPHY 的外部環或 GEOMETRY 作為線串。 |
| st_geometryn(geoExpr, nExpr) | 傳回輸入 GEOMETRY 值的從 1 開始的第 n 個元素作為 GEOMETRY 值。 |
| st_geometrytype(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的型別做為字串。 |
| st_interiorringn(geoExpr,indexExpr) | 傳回輸入多邊形 GEOGRAPHY 的第 n 個內部環,或將 GEOMETRY 作為線串傳回。 |
| st_isempty(geoExpr) | 如果輸入 GEOGRAPHY 或 GEOMETRY 值不包含任何非空白點,則傳回 true。 |
| st_m(geoExpr) | 傳回輸入點 GEOMETRY 值的 M 座標,如果點是空的或沒有 M 座標,則傳回 Null。 |
| st_ndims(地理Expr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的座標維度。 |
| st_npoints(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值中非空白點的數目。 |
| st_numgeometries(geoExpr) | 傳回輸入 GEOMETRY 值中的幾何數目。 |
| st_numinteriorrings(geoExpr) | 傳回輸入多邊形 GEOGRAPHY 或 GEOMETRY 值中的內部環數。 |
| st_pointn(geoExpr, indexExpr) | 傳回輸入線串 GEOGRAPHY 或 GEOMETRY 值的第 n 個點。 |
| st_startpoint(geoExpr) | 如果輸入地理空間值為非空白的行字串,則傳回輸入 GEOGRAPHY 或 GEOMETRY 值的第一個點。 |
| st_x(geoExpr) | 傳回輸入點 GEOMETRY 值的 X 座標,或 NULL 如果點是空的。 |
| st_xmax(geoExpr) | 傳回輸入 GEOMETRY 值的最大 X 座標,或如果幾何圖形為空則傳回 NULL。 |
| st_xmin(geoExpr) | 傳回輸入 GEOMETRY 值的最小 X 座標,或在幾何圖形為空時傳回 NULL。 |
| st_y(geoExpr) | 傳回輸入點 GEOMETRY 值的 Y 座標,或 NULL 如果點是空的。 |
| st_ymax(geoExpr) | 傳回輸入 GEOMETRY 值的最大 Y 座標,或 NULL 如果幾何圖形是空的。 |
| st_ymin(geoExpr) | 傳回輸入 GEOMETRY 值的最小 Y 座標,或 NULL 如果幾何圖形是空的。 |
| st_z(geoExpr) | 傳回輸入點 GEOMETRY 值的 Z 座標,或 NULL 如果點是空的或沒有 Z 座標。 |
| st_zmax(geoExpr) | 傳回輸入 GEOMETRY 值的最大 Z 座標,或 NULL 幾何圖形是空的或沒有 Z 座標。 |
| st_zmin(geoExpr) | 傳回輸入 GEOMETRY 值的最小 Z 座標,或 NULL 幾何圖形是空的或沒有 Z 座標。 |
Editors
| Function | Description |
|---|---|
| st_addpoint(geo1Expr,geo2Expr,indexExpr) | 將新點加入至輸入線串 GEOGRAPHY 或 GEOMETRY 值的第 n 個位置。 |
| st_flipcoordinates(地理擴展) | 交換輸入 GEOMETRY 值的 X 和 Y 座標。 |
| st_multi(geoExpr) | 以對等的多地理空間值傳回輸入 GEOGRAPHY 或 GEOMETRY 值。 |
| st_removepoint(geoExpr, indexExpr) | 從輸入線串 GEOGRAPHY 或 GEOMETRY 值中移除第 n 個點。 |
| st_reverse(geoExpr) | 反轉輸入 GEOGRAPHY 或 GEOMETRY 值。 |
| st_setpoint(geo1Expr, indexExpr, geo2Expr) | 設定輸入線串 GEOGRAPHY 或 GEOMETRY 值的第 n 個點。 |
幾何驗證
| Function | Description |
|---|---|
| st_isvalid(geoExpr) | 如果輸入 GEOMETRY 值是 OGC 意義上的有效幾何圖形,則傳回 true。 |
空間參考系統函式
| Function | Description |
|---|---|
| st_setsrid(地理、srid) | 傳回新的 GEOMETRY 值,其 SRID 是指定的 SRID 值。 |
| st_srid(geoExpr) | 傳回輸入 GEOGRAPHY 或 GEOMETRY 值的 SRID。 |
| st_transform(地理、srid) | 將輸入 GEOMETRY 的 X 和 Y 座標從目前座標參考系統轉換成所提供 SRID 值所描述的座標參考系統。 |
距離關係
| Function | Description |
|---|---|
| st_dwithin(geoExpr1, geoExpr2, distanceExpr) | 如果兩個輸入 GEOMETRY 值之間的 2D 笛卡爾距離小於或等於輸入距離值,則傳回 true。 |
拓撲關係
| Function | Description |
|---|---|
| st_contains(地理1、地理2) | 如果第一個 GEOMETRY 值包含第二個 GEOMETRY 值,則傳回 true。 |
| st_covers(geoExpr1, geoExpr2) | 如果第一個 GEOMETRY 值涵蓋第二個 GEOMETRY 值,則傳回 true。 |
| st_disjoint(geoExpr1, geoExpr2) | 如果兩個輸入true值不相交,則傳回GEOMETRY。 |
| st_equals(geoExpr1, geoExpr2) | 如果兩個輸入 GEOMETRY 值在幾何上相等,則傳回 true,這表示它們對應於相同的點集。 |
| st_intersects(geoExpr1, geoExpr2) | 如果兩個輸入 GEOMETRY 值相交,則傳回 true。 |
| st_touches(地理1、地理2) | 如果兩個輸入 GEOMETRY 值彼此接觸,則傳回 true。 |
| st_within(地理1、地理2) | 如果第一個 GEOMETRY 值在第二個 GEOMETRY 值內,則傳回 true。 |
疊加功能
| Function | Description |
|---|---|
| st_difference(geoExpr1, geoExpr2) | 將兩個輸入 GEOMETRY 值的點集差異傳回為 2D GEOMETRY 值。 |
| st_intersection(geoExpr1, geoExpr2) | 將兩個輸入 GEOMETRY 值的點集交集回傳為 2D GEOMETRY 值。 |
| st_union(地理1、地理2) | 將兩個輸入 GEOMETRY 值的點集聯集以 2D 幾何圖形的形式傳回。 |
| st_union_agg(geoCol) | 返回欄中所有幾何圖形的逐點的合併,如果欄包含零行或僅包含NULL值,則返回NULL。 |
仿射變換
| Function | Description |
|---|---|
| st_rotate(geoExpr, rotationAngle) | 將輸入 GEOMETRY 值繞 Z 軸旋轉指定的角度(以弧度為單位)。 |
| st_scale(geoExpr, xfactor, yfactor[, zfactor]) | 使用提供的縮放係數,在 X、Y 和 Z 方向 (如果指定) 上縮放輸入 GEOMETRY 值。 |
| st_translate(geoExpr,xoffset,yoffset[,zoffset]) | 使用提供的偏移在 X、Y 和 Z 方向 (如果指定) 中轉換輸入 GEOMETRY 值。 |
幾何加工
| Function | Description |
|---|---|
| st_buffer(geoExpr, radiusExpr) | 使用指定的半徑傳回輸入 GEOMETRY 值的緩衝區。 |
| st_centroid(地理Expr) | 將輸入 GEOMETRY 值的質心傳回為 2D 點 GEOMETRY 值。 |
| st_concavehull(geoExpr, lengthRatioExpr[, allowHolesExpr]) | 使用指定的長度比例,將輸入的 GEOMETRY 值的凹殼當作 GEOMETRY 值傳回。 |
| st_convexhull(geoExpr) | 傳回輸入 GEOMETRY 值的凸包體作為值 GEOMETRY 。 |
| st_simplify(地理、公差) | 使用 Douglas-Peucker 演算法簡化輸入 GEOMETRY 值。 |