#ST_LONGESTLINE
ST_LONGESTLINE函数根据输入的geometry1和geometry2,返回geometry1与geometry2之间的二维最长LineString。
geometry
通用表达式,其值必须为有效的ST_GEOMETRY类型的数据,遵循如下规则:
- geometry1和geometry2的空间参考系标识号(SRID)必须相等,否则报错。
本函数遵守如下规则:
- 当输入的参数存在NULL时,函数返回NULL。
- 仅计算2D结果,若输入参数中存在Z坐标,函数将直接忽略Z坐标进行计算。
- 返回的LineString从geometry1开始,以geometry2结束。
- 如果geometry1和geometry2相交,则结果是一条以交点为起点和终点的直线。
- 最长的LineString总是出现在两个顶点之间。如果找到多个,则返回第一个最长的LineString。
示例(单机HEAP表)
SELECT ST_AsText(ST_LONGESTLINE(ST_GeomFromText('POLYGON ((7.000 7.000, 6.000 6.000, 5.444 6.169, 7.000 7.000)) '),ST_GeomFromText('POLYGON((6.400 6.600, 6.231 7.156, 63.24 6.983, 6.400 6.600))')),6) res FROM dual;
RES
----------------------------------------------------------------
LINESTRING (5.444000 6.169000, 63.240000 6.983000)
SELECT ST_AsText(ST_LONGESTLINE(ST_Point(-72.1235, 42.3521, 4326), ST_GeomFromText('polygon((-72.1260 42.45, -72.123 42.1546, -72.1244 42.3527, -72.1260 42.45))',4326)), 6) res FROM dual;
RES
----------------------------------------------------------------
LINESTRING (-72.123500 42.352100, -72.123000 42.154600)