PostGIS

ST_ShortestLine

Prev

7.12. Measurement Functions

Next

Name

ST_ShortestLine — Returns the 2D shortest line between two geometries

Synopsis

geometry +`*`+ST_ShortestLine*(`geometry `geom1, geometry geom2`)`;

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

Description

Returns the 2-dimensional shortest line between two geometries. The line returned starts in geom1 and ends in geom2. If geom1 and geom2 intersect the result is a line with start and end at an intersection point. The length of the line is the same as ST_Distance returns for g1 and g2.

Enhanced: 3.4.0 - support for geography.

Availability: 1.5.0

Examples

st_shortestline01

Shortest line between Point and LineString

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)

st_shortestline02

Shortest line between Polygons

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)

See Also