↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.0 / 6.5
历史版本。 PostgreSQL 7.0 已结束支持。 请参阅 当前版本手册.

5.6. 几何函数

几何类型 point、box、lseg、line、path、polygon 和 circle 有一大套原生支持的函数和操作符。

表 5.12. 几何函数

函数返回描述例子
area(object)float8项目的面积area(box '((0,0),(1,1))')
box(box,box)box交集框box(box '((0,0),(1,1))',box '((0.5,0.5),(2,2))')
center(object)point项目的中心center(box '((0,0),(1,2))')
diameter(circle)float8圆的直径diameter(circle '((0,0),2.0)')
height(box)float8框的垂直尺寸height(box '((0,0),(1,1))')
isclosed(path)bool是否为闭合路径?isclosed(path '((0,0),(1,1),(2,0))')
isopen(path)bool是否为开放路径?isopen(path '[(0,0),(1,1),(2,0)]')
length(object)float8项目的长度length(path '((-1,0),(1,0))')
pclose(path)path把路径转换为闭合popen(path '[(0,0),(1,1),(2,0)]')
npoint(path)int4点数npoints(path '[(0,0),(1,1),(2,0)]')
popen(path)path把路径转换为开放路径popen(path '((0,0),(1,1),(2,0))')
radius(circle)float8圆的半径radius(circle '((0,0),2.0)')
width(box)float8水平尺寸width(box '((0,0),(1,1))')


表 5.13. 几何类型转换函数

函数返回描述例子
box(circle)box圆转为框box('((0,0),2.0)'::circle)
box(point,point)box点转为框box('(0,0)'::point,'(1,1)'::point)
box(polygon)box多边形转为框box('((0,0),(1,1),(2,0))'::polygon)
circle(box)circle转换为圆circle('((0,0),(1,1))'::box)
circle(point,float8)circle点转为圆circle('(0,0)'::point,2.0)
lseg(box)lseg框的对角线转为 lseglseg('((-1,0),(1,0))'::box)
lseg(point,point)lseg点转为 lseglseg('(-1,0)'::point,'(1,0)'::point)
path(polygon)point多边形转为路径path('((0,0),(1,1),(2,0))'::polygon)
point(circle)point中心point('((0,0),2.0)'::circle)
point(lseg,lseg)point交集point('((-1,0),(1,0))'::lseg, '((-2,-2),(2,2))'::lseg)
point(polygon)point中心point('((0,0),(1,1),(2,0))'::polygon)
polygon(box)polygon12 点多边形polygon('((0,0),(1,1))'::box)
polygon(circle)polygon12 点多边形polygon('((0,0),2.0)'::circle)
polygon(npts,circle)polygonnpts 多边形polygon(12,'((0,0),2.0)'::circle)
polygon(path)polygon路径转为多边形polygon('((0,0),(1,1),(2,0))'::path)


表 5.14. 几何升级函数

函数返回描述例子
isoldpath(path)path测试路径是否为 v6.1 之前的形式isoldpath('(1,3,0,0,1,1,2,0)'::path)
revertpoly(polygon)polygon转为 v6.1 之前形式revertpoly('((0,0),(1,1),(2,0))'::polygon)
upgradepath(path)path转为 v6.1 之前形式upgradepath('(1,3,0,0,1,1,2,0)'::path)
upgradepoly(polygon)polygon转为 v6.1 之前形式upgradepoly('(0,1,2,0,1,0)'::polygon)


报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.