[postgis-users] Find LineString segment index containing closest point?

Phil Hurvitz phurvitz at uw.edu
Wed Aug 5 12:16:43 PDT 2020


Thanks for sharing this! Such a great example of collaboration. You are 
all amazing.

> Date: Wed, 5 Aug 2020 10:09:14 -0700
> From: Martin Davis<mtnclimb at gmail.com>
> To: PostGIS Users Discussion<postgis-users at lists.osgeo.org>
> Subject: Re: [postgis-users] Find LineString segment index containing
> 	closest point?
> Message-ID:
> 	<CAK2ens38O2ng2CR2gevM-LM6HGAzq1S8eQO3dsJ9pBjM2msrJQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> On Wed, Aug 5, 2020 at 9:38 AM Martin Davis<mtnclimb at gmail.com>  wrote:
>
>> Added to the wiki:
>> https://trac.osgeo.org/postgis/wiki/UsersWikiLinearRefFunctions
>>
>> It seems a bit awkward to use this as it stands for inserting a vertex in
>> a line at the closest point.  I wonder if the function should also return
>> the closest point itself?  (In fact, I am certain that it should if it is
>> implemented as a native function, since that additional useful information
>> costs very little to obtain).
>>
> And done...  updated the wiki with a new version of the function which
> returns the index, distance and computed point on line.  Here it is in
> action, used for adding a vertex to a line:
>
> WITH data(id, line) AS (VALUES
>      ( 1, 'LINESTRING (0 0, 10 10, 20 20, 30 30)'::geometry )
> ),
> loc AS (
>    SELECT id, line, index, geom AS pt
>      FROM data
>      JOIN LATERAL ST_LineLocateSegment( data.line, 'POINT(15
> 15.1)'::geometry ) AS lls ON true
> )
> SELECT id, ST_AsText( ST_AddPoint( line, pt, index ) )
>    FROM loc;
>
> Note this is probably better done using ST_Snap, but sometimes it's useful
> to do things in a more explicit way.
-- 

------------------------------------------------------------------------
Phil Hurvitz, Research Scientist, CSDE <https://csde.washington.edu/>, 
UFL <sites.uw.edu/ufl>
Contact information <http://gis.washington.edu/phurvitz/contact>
Calendar <http://staff.washington.edu/phurvitz/calendar>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20200805/b7b3b535/attachment.html>


More information about the postgis-users mailing list