几何类型point
、box
、 lseg
、line
、path
、 polygon
和circle
有一大堆本地支持函数和操作符,如表 9.35、表 9.36和表 9.37中所示。
表 9.35. 几何操作符
操作符 描述 例子 |
---|
将第二个 |
连接两个打开的路径(如果其中一个路径是关闭的,则返回NULL)。 |
从第一个参数的每个点的坐标中减去第二个 |
将第一个参数的每个点乘上第二个point(将点视为由实部和虚部表示的复数,并执行标准的复数乘法)。 如果将第二个 |
将第一个参数的每个点除以第二个 |
计算总长度。适用于 |
计算中心点。适用于 |
返回点的数量。适用于 |
计算交点,如果没有则为NULL。适用于 |
计算两个方框的交集,如果没有则为NULL。 |
计算第二个对象上离第一个对象最近的点。适用于这些类型对: ( |
计算对象之间的距离。适用于所有七种几何类型,适用于 |
第一个对象包含第二个对象吗? 适用于这些类型对: ( |
第一个对象包含在第二个对象之中还是在第二个对象之上? 适用于这些类型对: ( |
这些对象有重叠吗?(一个共同点使之为真。) 适用于 |
第一个对象完全位于第二个对象的左边吗? 适用于 |
第一个对象完全位于第二个对象的右边吗? 适用于 |
第一个对象没有延伸到第二个对象的右侧吗? 适用于 |
第一个对象没有延伸到第二个对象的左侧吗? 适用于 |
第一个对象是否确定位于第二个对象下面? 适用于 |
第一个对象是否确定位于第二个对象上面? 适用于 |
第一个对象是否没有扩展到第二个对象上面? 适用于 |
第一个对象是否没有扩展到第二个对象下面? 适用于 |
第一个对象是否位于第二个对象下面(允许边缘相切)? |
第一个对象是否确定位于第二个对象下面? (这个操作符命名错误; 它应该是 |
第一个对象是否位于第二个对象上面(允许边缘相切)? |
第一个对象是否确定位于第二个对象上面? (这个操作符命名错误; 它应该是 |
这些对象是否相交? 适用于这些类型对: ( |
线是水平的? |
点是否水平对齐(即具有相同的y坐标)? |
线是纵向的的? |
点是否垂直对齐(即具有相同的x坐标)? |
线是垂直的? |
线是平行的? |
这些对象是相同的吗? 适用于 |
[a] “Rotating”用这些操作符“旋转”一个盒子,只会移动它的角点:这个盒子仍然被认为有平行于轴的边。 因此,盒子的大小并没有像真正的旋转那样得到保留。 |
请注意“same as”操作符(~=
),表示point
、box
、polygon
和circle
类型的一般相等概念。 这些类型中的某些还有一个
=
操作符,但是=
只比较相同的面积。 其它的标量比较操作符 (<=
等等),在这些类型可用的地方,同样比较区域。
在PostgreSQL之前,包含操作符@>
和<@
被分别称为~
和@
。 这些名字仍然可以使用,但是已被废除并且最终将被移除。
表 9.36. 几何函数
函数 描述 例子 |
---|
计算面积。适用于 |
计算中心点。适用于 |
提取框的对角线作为线段(与 |
计算圆的直径。 |
计算框的垂直尺寸。 |
路径是否封闭? |
路径是否开放? |
计算总长度。适用于 |
返回点的数量。适用于 |
将路径转换为封闭形式。 |
将路径转换为开放形式。 |
计算圆的半径。 |
计算通过两点所画直线的斜率。 |
计算框的水平大小。 |
表 9.37. 几何类型转换函数
函数 描述 例子 |
---|
计算框中内刻的圆形。 |
将点转换为空框。 |
将任意两个角点转换为框。 |
计算多边形的边界框。 |
计算两个方框的边界框。 |
计算最小的圆形包围框。 |
从圆心和半径构造圆。 |
将多边形转换为圆。圆心是多边形各点位置的平均值,半径是多边形各点到圆心的平均距离。 |
将两个点转换成通过它们的直线。 |
提取框的对角线作为线段。 |
从两个端点构造线段。 |
将多边形转换为具有点的相同列表的封闭路径。 |
从它的坐标构造点。 |
计算框的中心。 |
计算圆心。 |
计算线段的中心。 |
计算多边形的中心(多边形的点位置的平均值)。 |
将框转换为4点多边形。 |
将圆转换为12点多边形。 |
将圆转换为 |
将封闭路径转换为具有点的相同列表的多边形。 |
我们可以把一个point
的两个组成数字当作具有索引 0 和 1 的数组访问。例如,如果t.p
是一个point
列,那么SELECT p[0] FROM t
检索 X 座标而 UPDATE t SET p[1] = ...
改变 Y
座标。同样,box
或者lseg
类型的值可以当作两个point
值的数组值看待。
CREATE SEQUENCE — 定义一个新的序列发生器大纲CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] name [ INCREMENT [ B...
DECLARE — 定义一个游标 大纲DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]CURSOR [ { WITH | WITHOUT } HOLD ] ...
DROP GROUP — 移除一个数据库角色大纲DROP GROUP [ IF EXISTS ] name [, ...]描述 DROP GROUP现在是 DROP ROLE的一个别名。兼容...
DROP SERVER — 移除一个外部服务器描述符 大纲DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ] 描述 DROP SERV...
XSL-FO marker 对象XSL-FO 参考手册定义和用法 fo:marker 对象与 fo:retrieve-marker 一起使用来创建运行的页眉或页脚(举例:让...