地理函数
Elastic Stack Serverless
警告
此功能处于 beta 阶段,可能会发生更改。 其设计和代码不如官方 GA 功能成熟,并且按原样提供,不提供任何保证。 Beta 功能不受官方 GA 功能的支持 SLA 约束。
地理函数适用于存储在 geo_point
、geo_shape
和 shape
字段中,或由其他地理函数返回的几何图形。
geo_point
、geo_shape
和 shape
类型在 SQL 中表示为几何图形,并且可以互换使用,但以下情况除外:
geo_shape
和shape
字段没有 doc values,因此这些字段不能用于过滤、分组或排序。geo_points
字段默认被索引并具有 doc values,但是只有纬度和经度被存储和索引,并且与原始值相比存在一些精度损失(纬度为 4.190951585769653E-8,经度为 8.381903171539307E-8)。 高度分量被接受,但没有存储在 doc values 中,也没有被索引。 因此,在过滤、分组或排序中调用ST_Z
函数将返回null
。
ST_AsWKT(
geometry
)
输入:
- 几何图形。 如果为
null
,则函数返回null
。
输出: 字符串
描述: 返回 geometry
的 WKT 表示形式。
SELECT city, ST_AsWKT(location) location FROM "geo" WHERE city = 'Amsterdam';
city:s | location:s
Amsterdam |POINT (4.850312 52.347557)
ST_WKTToSQL(
string
)
输入:
- 几何图形的字符串 WKT 表示形式。 如果为
null
,则函数返回null
。
输出: 几何图形
描述: 从 WKT 表示形式返回几何图形。
SELECT CAST(ST_WKTToSQL('POINT (10 20)') AS STRING) location;
location:s
POINT (10.0 20.0)
ST_GeometryType(
geometry
)
输入:
- 几何图形。 如果为
null
,则函数返回null
。
输出: 字符串
描述: 返回 geometry
的类型,例如 POINT、MULTIPOINT、LINESTRING、MULTILINESTRING、POLYGON、MULTIPOLYGON、GEOMETRYCOLLECTION、ENVELOPE 或 CIRCLE。
SELECT ST_GeometryType(ST_WKTToSQL('POINT (10 20)')) type;
type:s
POINT
ST_X(
geometry
)
输入:
- 几何图形。 如果为
null
,则函数返回null
。
输出: 双精度浮点数
描述: 返回几何图形中第一个点的经度。
SELECT ST_X(ST_WKTToSQL('POINT (10 20)')) x;
x:d
10.0
ST_Y(
geometry
)
输入:
- 几何图形。 如果为
null
,则函数返回null
。
输出: 双精度浮点数
描述: 返回几何图形中第一个点的纬度。
SELECT ST_Y(ST_WKTToSQL('POINT (10 20)')) y;
y:d
20.0
ST_Z(
geometry
)
输入:
- 几何图形。 如果为
null
,则函数返回null
。
输出: 双精度浮点数
描述: 返回几何图形中第一个点的高度。
SELECT ST_Z(ST_WKTToSQL('POINT (10 20 30)')) z;
z:d
30.0
ST_Distance(
geometry,
geometry
)
输入:
- 源几何图形。 如果为
null
,则函数返回null
。 - 目标几何图形。 如果为
null
,则函数返回null
。
输出: 双精度浮点数
描述: 返回几何图形之间的距离,以米为单位。 两个几何图形必须是点。
SELECT ST_Distance(ST_WKTToSQL('POINT (10 20)'), ST_WKTToSQL('POINT (20 30)')) distance;
distance:d
1499101.2889383635