ST_ShortestLine — Returnerar den kortaste 2D-linjen mellan två geometrier
geometry ST_ShortestLine(
geometry geom1, geometry geom2)
;
geography ST_ShortestLine(
geography geom1, geography geom2, boolean use_spheroid = true)
;
Returnerar den 2-dimensionella kortaste linjen mellan två geometrier. Den returnerade linjen börjar i geom1
och slutar i geom2
. Om geom1
och geom2
skär varandra blir resultatet en linje med start och slut i en skärningspunkt. Linjens längd är densamma som ST_Distance returnerar för g1 och g2.
Förbättrad: 3.4.0 - stöd för geografi.
Tillgänglighet: 1.5.0
Kortaste linjen mellan Point och 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)
Kortaste linjen mellan polygoner
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