适用于: Databricks Runtime 17.1 及更高版本
重要
此功能目前以公共预览版提供。
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)
进口
功能 | DESCRIPTION |
---|---|
st_geogfromgeojson(geojsonExpr) | 从其 GeoJSON 表示形式返回一个 GEOGRAPHY(4326) 值。 |
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(geohash) | 以二维多边形几何图形的形式返回与输入 geohash 值对应的 geohash 网格框。 |
st_geomfromgeojson(geojsonExpr) | 从其 GeoJSON 表示形式返回一个 GEOMETRY(4326) 值。 |
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(geohash) | 返回与输入 geohash 值对应的 geohash 网格框中心,形式为 2D 点几何。 |
to_geography(georepExpr) | 从 GeoJSON、WKB 或 WKT 表示形式返回一个 GEOGRAPHY(ANY) 值。 |
to_geometry(georepExpr) | 从其 EWKB、GeoJSON、WKB 或 WKT 表示形式返回一个 GEOMETRY(ANY) 值。 |
try_to_geography(georepExpr) | 如果输入表示形式无效,则返回GEOGRAPHY(ANY) ;否则,从其 GeoJSON、WKB 或 WKT 表示形式返回一个 NULL 值。 |
try_to_geometry(georepExpr) | 从 EWKB、GeoJSON、WKB 或 WKT 表示形式返回一个 GEOMETRY(ANY) 值,如果输入表示形式无效,则返回 NULL 。 |
出口
功能 | DESCRIPTION |
---|---|
st_asbinary(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值的 WKB 表示形式,作为 BINARY 值。 |
st_asewkb(geoExpr) | 返回输入GEOMETRY 值的 EWKB 表示形式作为BINARY 值。 |
st_asgeojson(geoExpr) | 将输入GEOGRAPHY 或GEOMETRY 值的 GeoJSON 表示形式作为STRING 值返回。 |
st_asewkt(geoExpr) | 返回输入GEOGRAPHY 或GEOMETRY 值的 EWKT 表示形式作为STRING 值。 |
st_astext(geoExpr) | 将输入GEOGRAPHY 或GEOMETRY 值以STRING 值的形式返回其 WKT 表示。 |
st_aswkb(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值的 WKB 表示形式,作为 BINARY 值。 |
st_aswkt(geoExpr) | 将输入GEOGRAPHY 或GEOMETRY 值以STRING 值的形式返回其 WKT 表示。 |
st_geohash(地理 [, 精度]) | 以指定的精度返回输入几何对象的地理哈希。 |
测量结果
功能 | DESCRIPTION |
---|---|
st_area(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值的区域。 |
st_distance(geoExpr1、geoExpr2) | 返回两个输入 GEOMETRIES 之间的二维笛卡尔距离。 |
st_distancesphere(geoExpr1、geoExpr2) | 返回两个点 GEOMETRIES 之间的球形距离(以米为单位),该距离在半径为 WGS84 椭圆的平均值半径的球体上测量。 |
st_distancespheroid(geoExpr1、geoExpr2) | 返回 WGS84 椭圆两个点 GEOMETRIES 之间的地理距离(以米为单位)。 |
st_length(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值的长度。 |
st_perimeter(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值的外围。 |
构造函数
功能 | DESCRIPTION |
---|---|
st_makeline(geoArray) | 返回一个线字符串 GEOMETRY ,其点是几何图形输入数组中几何图形的非空点,这些几何图形应为点、线字符串或多点。 |
st_makepolygon(outer[, innerArray]) | 从输入外部边界和内部边界的可选数组(表示为封闭线字符串)构造多边形 GEOMETRY 。 |
st_point(x, y [, srid]) | 返回具有给定 x 和 y 坐标和 SRID 值的点 GEOMETRY (如果提供)。 |
访问器
功能 | DESCRIPTION |
---|---|
st_dimension(geoExpr) | 返回 2D 投影的 GEOMETRY 拓扑维度。 |
st_endpoint(geoExpr) | 如果输入地理空间值为非空线字符串,则返回输入 GEOGRAPHY 或 GEOMETRY 值的最后一个点。 |
st_envelope(geoExpr) | 返回一个表示输入几何图形的 2D 轴对齐最小边界框(信封)的 2D 笛卡尔几何图形。 |
st_envelope_agg(geoCol) | 返回该列中所有几何形状的包络,或者如果该列包含零行,或仅包含NULL 值,则返回NULL 。 |
st_geometryn(地理,n) | 返回输入几何图形的第 n 个元素,从1开始,作为 GEOMETRY 值。 |
st_geometrytype(geoExpr) | 以字符串形式返回输入 GEOGRAPHY 或 GEOMETRY 值的类型。 |
st_isempty(geoExpr) | 如果输入 GEOGRAPHY 或 GEOMETRY 值不包含任何非空点,则返回 true。 |
st_m(geoExpr) | 返回输入点 GEOMETRY 的 M 坐标;如果点为空或没有 M 坐标,则返回 NULL。 |
st_ndims(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值的坐标维度。 |
st_npoints(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值中的非空点数。 |
st_numgeometries(geoExpr) | 返回输入 GEOMETRY 值中的几何图形数。 |
st_pointn(geoExpr、indexExpr) | 返回输入线字符串中的第 n 个点 GEOGRAPHY 或 GEOMETRY 。 |
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 坐标;如果点为空或没有 Z 坐标,则返回 NULL。 |
st_zmax(geoExpr) | 返回输入 GEOMETRY 的最大 Z 坐标;如果几何图形为空或没有 Z 坐标,则返回 NULL。 |
st_zmin(geoExpr) | 返回输入 GEOMETRY 的最小 Z 坐标;如果几何图形为空或没有 Z 坐标,则返回 NULL。 |
Editors
功能 | DESCRIPTION |
---|---|
st_addpoint(geo1Expr, geo2Expr[, indexExpr]) | 将新点添加到输入线字符串 GEOGRAPHY 中的第 n 个位置或 GEOMETRY 。 |
st_flipcoordinates(geoExpr) | 交换输入几何图形的 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 个点。 |
几何验证
功能 | DESCRIPTION |
---|---|
st_isvalid(geoExpr) | 如果输入 GEOMETRY 是 OGC 意义上的有效几何图形,则返回 true。 |
空间引用系统函数
功能 | DESCRIPTION |
---|---|
st_setsrid(地理、斯里德) | 返回一个新 GEOMETRY 值,其 SRID 是指定的 SRID 值。 |
st_srid(geoExpr) | 返回输入 GEOGRAPHY 或 GEOMETRY 值的 SRID。 |
st_transform(地理、斯里) | 将输入 GEOMETRY 的 X 和 Y 坐标从当前坐标引用系统转换为所提供的 SRID 值描述的坐标引用系统。 |
距离关系
功能 | DESCRIPTION |
---|---|
st_dwithin(geo1、geo2、d) | 如果两个输入几何图形之间的 2D 笛卡尔距离小于或等于输入距离,则返回 true。 |
拓扑关系
功能 | DESCRIPTION |
---|---|
st_contains(geo1、geo2) | 如果第一个 GEOMETRY 包含第二 GEOMETRY 个值,则返回 true。 |
st_covers(geoExpr1、geoExpr2) | 如果第一个 GEOMETRY 覆盖第二个 GEOMETRY ,则返回 true。 |
st_disjoint(geoExpr1、geoExpr2) | 如果这两个true 不相交,则返回GEOMETRIES 。 |
st_equals(geo1、geo2) | 如果两个几何图形在几何上相等,则返回 true,即它们对应于同一个点集。 |
st_intersects(geo1,geo2) | 如果两个几何图形有交集,则返回值为真。 |
st_touches(geo1、geo2) | 如果两个几何图形相互接触,则返回 true。 |
st_within(geo1,geo2) | 如果第一个 GEOMETRY 在第二个 GEOMETRY 内部,则返回 true。 |
覆盖函数
功能 | DESCRIPTION |
---|---|
st_difference(geoExpr1、geoExpr2) | 将两个输入GEOMETRIES 的点集差作为二维GEOMETRY 返回。 |
st_intersection(geo1,geo2) | 以 2D 几何形式返回两个输入几何图形的点集交集。 |
st_union(geo1、geo2) | 以 2D 几何形式返回两个输入几何图形的点集联合。 |
st_union_agg(geoCol) | 返回列中所有几何图形的逐点并集;如果列是零行或只包含 NULL 值,则返回 NULL 。 |
仿射变换
功能 | DESCRIPTION |
---|---|
st_rotate(geoExpr、rotationAngle) | 按给定旋转角度(以弧度为单位)围绕 Z 轴旋转输入 GEOMETRY 。 |
st_scale(geoExpr、 xfactor、 yfactor[, zfactor]) | 使用提供的缩放系数在 X、Y 方向,以及在指定情况下 Z 方向上缩放输入 GEOMETRY 。 |
st_translate(geoExpr、xoffset、yoffset[、 zoffset]) | 使用提供的偏移量在 X、Y 和 Z 方向(如果指定)平移输入 GEOMETRY 。 |
几何处理
功能 | DESCRIPTION |
---|---|
st_buffer(geoExpr、radiusExpr) | 使用指定的半径返回输入 GEOMETRY 的缓冲区。 |
st_centroid(geoExpr) | 以 2D 点GEOMETRY 的形式返回输入GEOMETRY 的质心。 |
st_concavehull(geoExpr, lengthRatioExpr[, allowHolesExpr]) | 使用指定的长度比率以 GEOMETRY 形式返回输入 GEOMETRY 的凹包。 |
st_convexhull(geoExpr) | 以GEOMETRY 形式返回输入GEOMETRY 的凸包。 |
st_simplify(地理、容差) | 使用 Douglas-Peucker 算法简化输入 GEOMETRY 。 |