ST_ClosestPoint — Renvoie le point 2D sur g1 qui est le plus proche de g2. Il s'agit du premier point de la ligne la plus courte d'une géométrie à l'autre.
geometry ST_ClosestPoint(
geometry geom1, geometry geom2)
;
geography ST_ClosestPoint(
geography geom1, geography geom2, boolean use_spheroid = true)
;
Renvoie le point bidimensionnel sur geom1
qui est le plus proche de geom2
. Il s'agit du premier point de la ligne la plus courte entre les géométries (telle que calculée par ST_ShortestLine).
Si vous avez une géométrie 3D, vous préférerez peut-être utiliser ST_3DClosestPoint. |
Amélioré : 3.4.0 - Prise en charge de la geography.
Disponibilité : 1.5.0
SELECT ST_AsText( ST_ClosestPoint(pt,line)) AS cp_pt_line, ST_AsText( ST_ClosestPoint(line,pt)) AS cp_line_pt FROM (SELECT 'POINT (160 40)'::geometry AS pt, 'LINESTRING (10 30, 50 50, 30 110, 70 90, 180 140, 130 190)'::geometry AS line ) AS t; cp_pt_line | cp_line_pt ----------------+------------------------------------------ POINT(160 40) | POINT(125.75342465753425 115.34246575342466)
SELECT ST_AsText( ST_ClosestPoint( 'POLYGON ((190 150, 20 10, 160 70, 190 150))', ST_Buffer('POINT(80 160)', 30) )) As ptwkt; ------------------------------------------ POINT(131.59149149528952 101.89887534906197)
ST_3DClosestPoint, ST_Distance, ST_LongestLine, ST_ShortestLine, ST_MaxDistance