ST_ShortestLine — Renvoie la ligne 2D la plus courte entre deux géométries
geometry ST_ShortestLine(geometry geom1, geometry geom2);
geography ST_ShortestLine(geography geom1, geography geom2, boolean use_spheroid = true);
Renvoie la ligne bidimensionnelle la plus courte entre deux géométries. La ligne renvoyée commence dans geom1 et se termine dans geom2. Si geom1 et geom2 se croisent, le résultat est une ligne dont le début et la fin se situent à un point d'intersection. La longueur de la ligne est la même que celle que ST_Distance renvoie pour g1 et g2.
Amélioré : 3.4.0 - Prise en charge de la geography.
Disponibilité : 1.5.0
Ligne la plus courte entre un point et une ligne
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)
Ligne la plus courte entre les polygones
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_ClosestPoint, ST_Distance, ST_LongestLine, ST_MaxDistance