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

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

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

3.6. 几何类型

几何类型表示二维的空间物体。最基础的类型是点,它是所有其他类型的基础。

表 3.18. Postgres 几何类型

几何类型存储尺寸表示描述
point16字节(x,y)空间中的点
line32字节((x1,y1),(x2,y2))无限直线
lseg32字节((x1,y1),(x2,y2))有限线段
box32字节((x1,y1),(x2,y2))矩形框
path4+32n 字节((x1,y1),...)封闭路径(类似于多边形)
path4+32n 字节[(x1,y1),...]开放路径
polygon4+32n 字节((x1,y1),...)多边形(类似于封闭路径)
circle24字节<(x,y),r>圆(圆心和半径)


有一套丰富的函数和运算符可用于执行各种几何操作,如缩放、平移、旋转以及求交。

3.6.1. 点

点是几何类型的基础二维构件。

point 用下列语法指定:

( x , y )
  x , y
其中
    x 是以浮点数表示的 x 轴坐标
    y 是以浮点数表示的 y 轴坐标

3.6.2. 线段

线段(lseg)由点对表示。

lseg 用下列语法指定:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2    
其中
    (x1,y1) 和 (x2,y2) 是线段的两个端点

3.6.3. 方框

方框由作为其两个对角的点对表示。

box 用下列语法指定:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2    
其中
    (x1,y1) 和
    (x2,y2) 是方框的两个对角

方框使用第一种语法输出。输入时角点会被重新排序,先存左下角,后存右上角。也可以输入方框的其他角点,但左下角和右上角由输入确定并存储。

3.6.4. 路径

路径由相连的点集表示。路径可以是“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 之前的数据库转储并重新加载的路径。

3.6.5. 多边形

多边形由点集表示。多边形或许应被视为等价于封闭路径,但其存储方式不同,并且有自己的一套支持例程。

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 之前的数据库转储并重新加载的多边形。

3.6.6. 圆

圆由一个圆心和一个半径表示。

circle 用下列语法指定:

< ( x , y ) , r >
( ( x , y ) , r )
  ( x , y ) , r  
    x , y   , r  
其中
    (x,y) 是圆的圆心
    r 是圆的半径

圆使用第一种语法输出。

报告文档问题

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