PostgreSQL 9.4.4 中文手册 | |||
---|---|---|---|
上一页 | 上一级 | 章 8. 数据类型 | 下一页 |
几何数据类型表示二维的平面物体。表 8-20 显示了PostgreSQL里面可用的几何类型。
表 8-20. 几何类型
名字 | 存储空间 | 说明 | 表现形式 |
---|---|---|---|
point | 16 字节 | 平面中的点 | (x,y) |
line | 32 字节 | (无穷)直线 | {A,B,C} |
lseg | 32 字节 | (有限)线段 | ((x1,y1),(x2,y2)) |
box | 32 字节 | 矩形 | ((x1,y1),(x2,y2)) |
path | 16+16n 字节 | 闭合路径(与多边形类似) | ((x1,y1),...) |
path | 16+16n 字节 | 开放路径 | [(x1,y1),...] |
polygon | 40+16n 字节 | 多边形(与闭合路径相似) | ((x1,y1),...) |
circle | 24 字节 | 圆 | <(x,y),r> (圆心和半径) |
我们有一系列丰富的函数和操作符可用来进行各种几何计算,如拉伸、转换、旋转、计算相交等。 它们在第 9.11 节里有解释。
线是由线的方程式Ax + By + C = 0 表示的,这里的A和B都不是0。 类型line的值以下列的形式输入和输出:
{ A, B, C }
作为选择,下列的任意一种格式都可以用作输入:
[ ( x1 , y1 ) , ( x2 , y2 ) ] ( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2
这里的(x1,y1) 和(x2,y2) 是线上的两个不同的点。
线段是用线段的一对端点来代表的。lseg的值用下面语法声明:
[ ( x1 , y1 ) , ( x2 , y2 ) ] ( ( 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) 是矩形的一对对角点。
矩形的输出使用第二种语法。
任何两个对角都可以出现在输入中,但按照那样的顺序, 右上角和左下角的值会被重新排序以存储。
路径由一系列连接的点组成。路径可能是开放的, 也就是认为列表中第一个点和最后一个点没有连接,也可能是闭合的, 这时认为第一个和最后一个点连接起来。
path的数值用下面语法声明:
[ ( x1 , y1 ) , ... , ( xn , yn ) ] ( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn
这里的点是组成路径的线段的端点。方括弧([])表明一个开放的路径, 圆括弧(())表明一个闭合的路径。当最外层的括号被省略, 如在第三至第五语法,会假定一个封闭的路径。
路径的输出使用第一种或第二种语法输出,在适当的时候。
多边形由一系列点代表(多边形的顶点)。多边形可以认为与闭合路径一样,但是存储方式不一样而且有自己的一套支持函数。
polygon的数值用下列语法声明:
( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn
这里的点是多边形的端点。
多边形输出使用第一种语法。
圆由一个圆心和半径标识。circle的数值用下面语法表示:
< ( x , y ) , r > ( ( x , y ) , r ) ( x , y ) , r x , y , r
这里的(x,y) 是圆心,r是半径。
圆的输出用第一种格式。