名称

ST_ShortestLine — 返回两个几何体之间的二维最短线

语法

geometry ST_ShortestLine(geometry geom1, geometry geom2);

geography ST_ShortestLine(geography geom1, geography geom2, boolean use_spheroid = true);

说明

返回两个几何体之间的二维最短线。返回的线从 geom1 开始,在 geom2 结束。如果 geom1geom2 相交,则结果是一条在交点处开始和结束的线。线的长度与 ST_Distance 为 g1 和 g2 返回的长度相同。

增强:3.4.0 - 支持地理。

可用性:1.5.0

示例

点和线串之间的最短线

SELECT ST_AsText(  ST_ShortestLine(
        'POINT (160 40)',
        'LINESTRING (10 30, 50 50, 30 110, 70 90, 180 140, 130 190)')
	) As sline;
---------------------------------------------------------
 LINESTRING(160 40,125.75342465753425 115.34246575342466)

多边形之间的最短线

SELECT ST_AsText( ST_ShortestLine(
         'POLYGON ((190 150, 20 10, 160 70, 190 150))',
         ST_Buffer('POINT(80 160)', 30)
              ) ) AS llinewkt;
-----------------
LINESTRING(131.59149149528952 101.89887534906197,101.21320343559644 138.78679656440357)

另请参见

ST_ClosestPointST_DistanceST_LongestLineST_MaxDistance