##
功能描述
计算第二个对象上离第一个对象最近的点。
数据类型
L_OPERAND_TYP(左操作数类型) | R_OPERAND_TYP(右操作数类型) | RET_TYPE(返回类型) |
---|---|---|
POINT | BOX | POINT |
POINT | LSEG | |
POINT | LINE | |
LSEG | BOX | |
LSEG | LSEG | |
LINE | LSEG |
示例
##(POINT, BOX)
返回边框到点的最近的点。sqlSQL> SELECT POINT('(0,0)') ## BOX('(2,2),(4,4)'); EXPR1 | ---------+ (2.0,2.0)|
##(POINT, LSEG)
返回线段到点的最近的点。sqlSQL> SELECT POINT('(0,0)') ## LSEG('[(2,0),(0,2)]'); EXPR1 | ---------+ (1.0,1.0)|
##(POINT, LINE)
返回直线到点的最近的点。sqlSQL> SELECT point('(0,0)') ## LINE('[(2,0),(0,2)]'); EXPR1 | ---------+ (1.0,1.0)|
##(LSEG, BOX)
返回边框到线段的最近的点。sqlSQL> SELECT LSEG('[(2,0),(0,2)]') ## BOX('(2,2),(4,4)'); EXPR1 | ---------+ (2.0,2.0)|
##(LSEG, LSEG)
返回线段到线段的最近的点。sqlSQL> SELECT LSEG('[(2,0),(0,2)]') ## LSEG('[(-2,0),(0,0)]'); EXPR1 | ---------+ (0.0,0.0)| -- 两条平行线段,返回 NULL。 SQL> SELECT lseg('[(2,0),(0,2)]') ## lseg('[(-2,0),(0,-2)]'); EXPR1 | ------+ <NULL>| Total 1 records.
##(LINE, LSEG)
返回线段到直线的最近的点。sqlSQL> SELECT LINE('[(-2,0),(0,0)]') ## lseg('[(2,0),(0,2)]'); EXPR1 | ---------+ (2.0,0.0)|