pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
几何类型表示二维的空间物体。最基础的类型是点,它是所有其他类型的基础。
表 8.13. Postgres 几何类型
| 几何类型 | 存储尺寸 | 表示 | 描述 |
|---|---|---|---|
| point | 16字节 | (x,y) | 空间中的点 |
| line | 32字节 | ((x1,y1),(x2,y2)) | 无限直线 |
| lseg | 32字节 | ((x1,y1),(x2,y2)) | 有限线段 |
| box | 32字节 | ((x1,y1),(x2,y2)) | 矩形框 |
| path | 4+32n 字节 | ((x1,y1),...) | 封闭路径(类似于多边形) |
| path | 4+32n 字节 | [(x1,y1),...] | 开放路径 |
| polygon | 4+32n 字节 | ((x1,y1),...) | 多边形(类似于封闭路径) |
| circle | 24字节 | <(x,y),r> | 圆(圆心和半径) |
有一套丰富的函数和运算符可用于执行各种几何操作,如缩放、平移、旋转以及求交。
点用下列语法指定:
( x , y )
x , y
其中
x 是 x 轴坐标,以浮点数表示
y 是 y 轴坐标,以浮点数表示
线段(lseg)由点对表示。
lseg 用下列语法指定:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
其中
(x1,y1) 和
(x2,y2) 是线段的两个端点
方框由作为其两个对角的点对表示。
box 用下列语法指定:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
其中
(x1,y1) 和 (x2,y2) 是方框的对角
方框使用第一种语法输出。输入时角点会被重新排序,先存左下角,后存右上角。也可以输入方框的其他角点,但左下角和右上角由输入确定并存储。
路径由相连的点集表示。路径可以是“open”(开放)的(集合中第一个点和最后一个点不相连),也可以是“closed”(封闭)的(第一个点和最后一个点相连)。函数 popen(p) 和 pclose(p) 可用于强制路径开放或封闭,而函数 isopen(p) 和 isclosed(p) 可用于在查询中选择这两种类型。
path 用下列语法指定:
( ( x1 , y1 ) , ... , ( xn , yn ) )
[ ( x1 , y1 ) , ... , ( xn , yn ) ]
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
其中
(x1,y1),...,(xn,yn) 是第 1 到第 n 个点
前导 "[" 表示开放路径
前导 "(" 表示封闭路径
路径使用第一种语法输出。注意 Postgres v6.1 之前的版本对路径使用另一种格式:单个前导圆括号、一个“closed”(封闭)标志、一个点数的整数计数,然后是点列表和一个闭合圆括号。内建函数 upgradepath 用于转换从 v6.1 之前的数据库转储并重新加载的路径。
多边形由点集表示。多边形或许应被视为等价于封闭路径,但其存储方式不同,并且有自己的一套支持例程。
polygon 用下列语法指定:
( ( x1 , y1 ) , ... , ( xn , yn ) )
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
其中
(x1,y1),...,(xn,yn) 是第 1 到第 n 个点
多边形使用第一种语法输出。注意 Postgres v6.1 之前的版本对多边形使用另一种格式:单个前导圆括号、x 轴坐标列表、y 轴坐标列表,再接一个闭合圆括号。内建函数 upgradepoly 用于转换从 v6.1 之前的数据库转储并重新加载的多边形。
圆由一个圆心和一个半径表示。
circle 用下列语法指定:
< ( x , y ) , r >
( ( x , y ) , r )
( x , y ) , r
x , y , r
其中
(x,y) 是圆的圆心
r 是圆的半径
圆使用第一种语法输出。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。