PostgreSQL
上一页 第三章. 数据类型 下一页

几何类型

几何类型表示二维的平面物体.最基本的类型:点,是其他类型的基础.

表 3-17. Postgres 几何类型

几何类型 存储空间 表达 描述
point 16 bytes (x,y) 空间中一点
line 32 bytes ((x1,y1),(x2,y2)) (无穷)直线
lseg 32 bytes ((x1,y1),(x2,y2)) 线段
box 32 bytes ((x1,y1),(x2,y2)) 长方形
path 4+32n bytes ((x1,y1),...) 闭合路径(与多边形类似)
path 4+32n bytes [(x1,y1),...] 开放路径
polygon 4+32n bytes ((x1,y1),...) 多边形(与闭合路径相似)
circle 24 bytes <(x,y),r> 圆(圆心和半径)

一系列丰富的函数和操作符可用来进行各种几何计算,如度量,转换,旋转和计算相交等.

Point(点)

点是集合类型的基本二维构造单位。

用下面语法描述 point

( x , y )
  x , y
这里
    x 是用一个浮点数表示的点的 x 坐标
    y 是用一个浮点数表示的点的 y 坐标     

Line Segment(线段)

线段(lseg)是用一对点来代表的.

lseg 用下面语法声明:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2    
这里
    (x1,y1) 和 (x2,y2) 是线段的端点     

Box(方)

方是用一对对角点来表示的.

box 的声明如下:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2    
这里
    (x1,y1) 和 (x2,y2) 是一对对角点     

方的输出使用第一种语法.在输入时将按先左下角后右上角的顺序重新排列.你也可以输入其他的一对对角点.但输入时将按照先左下角后右上角的顺序重排并存储.

Path(路径)

路径由一系列连接的点组成.路径可能是"开放"的,也就是第一个点和最后一个点没有连接,也可能是"闭合"的,这时第一个和最后一个点连接起来.我们提供了函数 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以前的版本路径的格式是由一个圆括号开始——一个"关闭标志",一个点的计数然后后面是点的列表,最后是一个圆括号结束.有一个内建的函数upgradepath 可用于从6.1前版本输出和重载路径,将其转换成新的。

Polygon(多边形)

多边形由一系列点代表.多边形可以认为与闭合路径一样,但是存储方式不一样而且有自己的一套支持过程/函数.

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 可用于从6.1前版本输出和重载多边形,将其转换成新的。

Circle(圆)

圆由一个圆心和一个半径代表.

circle 用下面语法表示:

< ( x , y ) , r >
( ( x , y ) , r )
  ( x , y ) , r  
    x , y   , r  
这里
    (x,y) 是圆心
    r 是圆的半径     

圆的输出用第一个格式.


上一页 首页 下一页
布尔类型 开头 IP 版本 4 网络和主机地址