• GBase 8c V3.0.0数据类型——几何操作符


    1. +

    描述:平移。

    示例:

    gbase=# SELECT box '((0,0),(1,1))' + point '(2.0,0)' AS RESULT;

       result    

    -------------

     (3,1),(2,0)

    (1 row)

    1. -

    描述:平移。

    示例:

    gbase=# SELECT box '((0,0),(1,1))' - point '(2.0,0)' AS RESULT;

        result     

    ---------------

     (-1,1),(-2,0)

    (1 row)

    1. *

    描述:伸展/旋转。

    示例:

    gbase=# SELECT box '((0,0),(1,1))' * point '(2.0,0)' AS RESULT;

       result    

    -------------

     (2,2),(0,0)

    (1 row)

    1. /

    描述:收缩/旋转。

    示例:

     gbase=# SELECT box '((0,0),(2,2))' / point '(2.0,0)' AS RESULT;

       result    

    -------------

     (1,1),(0,0)

    (1 row)

    1. #

    描述:两个图形交面。

    示例:

    gbase=# SELECT box '((1,-1),(-1,1))' # box '((1,1),(-2,-2))' AS RESULT;

     result

    ---------------

     (1,1),(-1,-1)

    (1 row)

    1. #

    描述:图形的路径数目或多边形顶点数。

    示例:

    gbase=# SELECT # path'((1,0),(0,1),(-1,0))' AS RESULT;

     result

    --------

          3

    (1 row)

    1. @-@

    描述:图形的长度或者周长。

    示例:

     gbase=# SELECT @-@ path '((0,0),(1,0))' AS RESULT;

     result

    --------

          2

    (1 row)

    1. @@

    描述:图形的中心。

    示例:

    gbase=# SELECT @@ circle '((0,0),10)' AS RESULT;

     result

    --------

     (0,0)

    (1 row)

    1. <->

    描述:两个图形之间的距离。

    示例:

    gbase=# SELECT circle '((0,0),1)' <-> circle '((5,0),1)' AS RESULT;

     result

    --------

          3

    (1 row)

    1. &&

    描述:两个图形是否重叠(有一个共同点就为真)。

    示例:

    gbase=# SELECT box '((0,0),(1,1))' && box '((0,0),(2,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. <<

    描述:图形是否全部在另一个图形的左边(没有相同的横坐标)。

    示例:

    gbase=# SELECT circle '((0,0),1)' << circle '((5,0),1)' AS RESULT;

     result

    --------

     t

    (1 row)

    1. >>

    描述:图形是否全部在另一个图形的右边(没有相同的横坐标)。

    示例:

    gbase=# SELECT circle '((5,0),1)' >> circle '((0,0),1)' AS RESULT;

     result

    --------

     t

    (1 row)

    1. &<

    描述:图形的最右边是否不超过在另一个图形的最右边。

    示例:

    gbase=# SELECT box '((0,0),(1,1))' &< box '((0,0),(2,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. &>

    描述:图形的最左边是否不超过在另一个图形的最左边。

    示例:

    gbase=# SELECT box '((0,0),(3,3))' &> box '((0,0),(2,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. <<|

    描述:图形是否全部在另一个图形的下边(没有相同的纵坐标)。

    示例:

    gbase=# SELECT box '((0,0),(3,3))' <<| box '((3,4),(5,5))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. |>>

    描述:图形是否全部在另一个图形的上边(没有相同的纵坐标)。

    示例:

    gbase=# SELECT box '((3,4),(5,5))' |>> box '((0,0),(3,3))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. &<|

    描述:图形的最上边是否不超过另一个图形的最上边。

    示例:

    gbase=# SELECT box '((0,0),(1,1))' &<| box '((0,0),(2,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. |&>

    描述:图形的最下边是否不超过另一个图形的最下边。

    示例:

     gbase=# SELECT box '((0,0),(3,3))' |&> box '((0,0),(2,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. <^

    描述:图形是否低于另一个图形(允许两个图形有接触)。

    示例:

    gbase=# SELECT box '((0,0),(-3,-3))' <^ box '((0,0),(2,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. >^

    描述:图形是否高于另一个图形(允许两个图形有接触)。

    示例:

    gbase=# SELECT box '((0,0),(2,2))' >^ box '((0,0),(-3,-3))'  AS RESULT;

     result

    --------

     t

    (1 row)

    1. ?#

    描述:两个图形是否相交。

    示例:

    gbase=# SELECT lseg '((-1,0),(1,0))' ?# box '((-2,-2),(2,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. ?-

    描述:图形是否处于水平位置。

    示例:

    gbase=# SELECT ?- lseg '((-1,0),(1,0))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. ?-

    描述:图形是否水平对齐。

    示例:

     gbase=# SELECT point '(1,0)' ?- point '(0,0)' AS RESULT;

     result

    --------

     t

    (1 row)

    1. ?|

    描述:图形是否处于竖直位置。

    示例:

    gbase=# SELECT ?| lseg '((-1,0),(1,0))' AS RESULT;

     result

    --------

     f

    (1 row)

    1. ?|

    描述:图形是否竖直对齐。

    示例:

     gbase=# SELECT point '(0,1)' ?| point '(0,0)' AS RESULT;

     result

    --------

     t

    (1 row)

    1. ?-|

    描述:两条线是否垂直。

    示例:

    gbase=# SELECT lseg '((0,0),(0,1))' ?-| lseg '((0,0),(1,0))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. ?||

    描述:两条线是否平行。

    示例:

    gbase=# SELECT lseg '((-1,0),(1,0))' ?|| lseg '((-1,2),(1,2))' AS RESULT;

     result

    --------

     t

    (1 row)

    1. @>

    描述:图形是否包含另一个图形。

    示例:

    gbase=# SELECT circle '((0,0),2)' @> point '(1,1)' AS RESULT;

     result

    --------

     t

    (1 row)

    1. <@

    描述:图形是否被包含于另一个图形。

    示例:

    gbase=# SELECT point '(1,1)' <@ circle '((0,0),2)' AS RESULT;

     result

    --------

     t

    (1 row)

    1. ~=

    描述:两个图形是否相同。

    示例:

    gbase=# SELECT polygon '((0,0),(1,1))' ~= polygon '((1,1),(0,0))' AS RESULT;

     result

    --------

     t

    (1 row)

  • 相关阅读:
    企业数据分析的维度一般有哪些?
    apple MFI工厂认证,干货,为防止MFI工作人员查看,已设置VIP阅读
    Go语言操作grpc详细使用
    代码随想录算法训练营第四十八天| LeetCode198. 打家劫舍、LeetCode213. 打家劫舍 II、LeetCode337. 打家劫舍 III
    Pytorch中安装 torch_geometric 详细图文操作(全)
    使用c++实现通讯录管理系统
    关于激光探测器光斑质心算法在FPGA硬件的设计
    python基于PHP+MySQL的网上药店销售购物管理系统
    免费的内网穿透(钉钉)
    Flutter学习5-集成-打包-发布
  • 原文地址:https://blog.csdn.net/futianxia061112/article/details/125420856