--- On Thu, 9/10/09, Daniel Grum <[email protected]> wrote:

> From: Daniel Grum <[email protected]>

> [email protected]
> schrieb:
> > It sounds like you could use the linear referencing
> capability, along the lines of (untested, just off the top
> of my head)...
> >
> > select 
> >
> makeline(st_line_interpolate_point(geom,1-((st_length(geom)-100)/st_length(geom))),endpoint(geom))
> >
> >
> > ie, make you new line the percentage along the
> original line required by your offset for the start point,
> and the endpoint remains the same.
> >
> >
> > HTH,
> >
> >   Brent Wood
> >   
> A very good idea.
> I try to understand it..what do you want to solve with:
> 
> 1-((st_length(geom)-100)/st_length(geom))
> 
> should this be a percantage part of the original line...I
> don't 
> understand it than.
> 
> I think we are on a good way...
> 
> --daniel


Essentially, you can get the new start point by using 
st_line_interpolate_point() to retrieve a point a spectified distance along a 
line. This function doesn't measure along a line by distance units, but by 
proportion of the length of the line. The bit of SQL I used was (supposed) to 
convert your specified distance to a proportion of the line length.

Note that if you are using lat/long coords for your geometries, and your 
distance is in meters, you'll need to wrap a transform in there so the distance 
is retuned in m for a correct determinatuion of the proportion.

But I can't see any reason why this approach can't do what you require. It may 
be tidier to wrap it up in a user defined function than as an SQL, once you 
have it working.

Cheers,

  Brent Wood


_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to