Skip to main content

几何函数(Geometry Functions)

本页面全面概述了 Databend 中的几何函数(Geometry Functions),按功能分类以便参考。

几何创建函数

函数描述示例
ST_MAKEGEOMPOINT / ST_GEOM_POINT构造点几何体ST_MAKEGEOMPOINT(-122.35, 37.55)POINT(-122.35 37.55)
ST_MAKELINE / ST_MAKE_LINE基于点创建线字符串ST_MAKELINE(ST_MAKEGEOMPOINT(-122.35, 37.55), ST_MAKEGEOMPOINT(-122.40, 37.60))LINESTRING(-122.35 37.55, -122.40 37.60)
ST_MAKEPOLYGON基于线字符串创建多边形ST_MAKEPOLYGON(ST_MAKELINE(...))POLYGON(...)
ST_POLYGON创建多边形ST_POLYGON(...)POLYGON(...)

几何转换函数

函数描述示例
ST_GEOMETRYFROMTEXT / ST_GEOMFROMTEXT将 WKT 转换为几何体ST_GEOMETRYFROMTEXT('POINT(-122.35 37.55)')POINT(-122.35 37.55)
ST_GEOMETRYFROMWKB / ST_GEOMFROMWKB将 WKB 转换为几何体ST_GEOMETRYFROMWKB(...)POINT(...)
ST_GEOMETRYFROMEWKT / ST_GEOMFROMEWKT将 EWKT 转换为几何体ST_GEOMETRYFROMEWKT('SRID=4326;POINT(-122.35 37.55)')POINT(-122.35 37.55)
ST_GEOMETRYFROMEWKB / ST_GEOMFROMEWKB将 EWKB 转换为几何体ST_GEOMETRYFROMEWKB(...)POINT(...)
ST_GEOMFROMGEOHASH将 GeoHash 转换为几何体ST_GEOMFROMGEOHASH('9q8yyk8')POLYGON(...)
ST_GEOMPOINTFROMGEOHASH将 GeoHash 转换为点ST_GEOMPOINTFROMGEOHASH('9q8yyk8')POINT(...)
TO_GEOMETRY将多种格式转换为几何体TO_GEOMETRY('POINT(-122.35 37.55)')POINT(-122.35 37.55)

几何输出函数

函数描述示例
ST_ASTEXT将几何体转换为 WKTST_ASTEXT(ST_MAKEGEOMPOINT(-122.35, 37.55))'POINT(-122.35 37.55)'
ST_ASWKT将几何体转换为 WKTST_ASWKT(ST_MAKEGEOMPOINT(-122.35, 37.55))'POINT(-122.35 37.55)'
ST_ASBINARY / ST_ASWKB将几何体转换为 WKBST_ASBINARY(ST_MAKEGEOMPOINT(-122.35, 37.55))WKB representation
ST_ASEWKT将几何体转换为 EWKTST_ASEWKT(ST_MAKEGEOMPOINT(-122.35, 37.55))'SRID=4326;POINT(-122.35 37.55)'
ST_ASEWKB将几何体转换为 EWKBST_ASEWKB(ST_MAKEGEOMPOINT(-122.35, 37.55))EWKB representation
ST_ASGEOJSON将几何体转换为 GeoJSONST_ASGEOJSON(ST_MAKEGEOMPOINT(-122.35, 37.55))'{"type":"Point","coordinates":[-122.35,37.55]}'
ST_GEOHASH将几何体转换为 GeoHashST_GEOHASH(ST_MAKEGEOMPOINT(-122.35, 37.55), 7)'9q8yyk8'
TO_STRING将几何体转换为字符串TO_STRING(ST_MAKEGEOMPOINT(-122.35, 37.55))'POINT(-122.35 37.55)'

几何属性

函数描述示例
ST_DIMENSION返回几何体的维度ST_DIMENSION(ST_MAKEGEOMPOINT(-122.35, 37.55))0
ST_SRID返回几何体的 SRIDST_SRID(ST_MAKEGEOMPOINT(-122.35, 37.55))4326
ST_NPOINTS / ST_NUMPOINTS返回几何体中的点数ST_NPOINTS(ST_MAKELINE(...))2
ST_X返回点的 X 坐标ST_X(ST_MAKEGEOMPOINT(-122.35, 37.55))-122.35
ST_Y返回点的 Y 坐标ST_Y(ST_MAKEGEOMPOINT(-122.35, 37.55))37.55
ST_XMIN返回最小 X 坐标ST_XMIN(ST_MAKELINE(...))-122.40
ST_XMAX返回最大 X 坐标ST_XMAX(ST_MAKELINE(...))-122.35
ST_YMIN返回最小 Y 坐标ST_YMIN(ST_MAKELINE(...))37.55
ST_YMAX返回最大 Y 坐标ST_YMAX(ST_MAKELINE(...))37.60
ST_LENGTH返回线字符串的长度ST_LENGTH(ST_MAKELINE(...))5.57

几何访问器

函数描述示例
ST_POINTN从线字符串返回指定点ST_POINTN(ST_MAKELINE(...), 1)POINT(-122.35 37.55)
ST_STARTPOINT返回线字符串的起点ST_STARTPOINT(ST_MAKELINE(...))POINT(-122.35 37.55)
ST_ENDPOINT返回线字符串的终点ST_ENDPOINT(ST_MAKELINE(...))POINT(-122.40 37.60)

空间操作

函数描述示例
ST_DISTANCE返回两个几何体间的距离ST_DISTANCE(ST_MAKEGEOMPOINT(-122.35, 37.55), ST_MAKEGEOMPOINT(-122.40, 37.60))5.57
HAVERSINE返回两点间的大圆距离HAVERSINE(37.55, -122.35, 37.60, -122.40)6.12
ST_CONTAINS判断几何体是否包含另一几何体ST_CONTAINS(ST_MAKEPOLYGON(...), ST_MAKEGEOMPOINT(...))TRUE
ST_TRANSFORM将几何体从某 SRID 转换至另一 SRIDST_TRANSFORM(ST_MAKEGEOMPOINT(-122.35, 37.55), 3857)POINT(-13618288.8 4552395.0)
ST_SETSRID设置几何体的 SRIDST_SETSRID(ST_MAKEGEOMPOINT(-122.35, 37.55), 3857)POINT(-122.35 37.55)
Explore Databend Cloud for FREE
Low-cost
Fast Analytics
Easy Data Ingestion
Elastic Scaling
Try it today