[postgis-users] Make a shorter line from a given line

Paragon Corporation lr at pcorp.us
Wed Sep 9 12:44:56 PDT 2009


What about
http://www.postgis.org/documentation/manual-1.4.1SVN/ST_Line_Substring.html

That would give you a percent of the string.

If you need exact lengths, you could derive the percent by simple math

of 1000/ST_length(the_geom)  (would be the fraction you need to give to
startfrac to get the range of the string you want.

Leo 

-----Original Message-----
From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Daniel
Grum
Sent: Wednesday, September 09, 2009 3:20 PM
To: pcreso at pcreso.com
Cc: PostGIS Users Discussion
Subject: Re: [postgis-users] Make a shorter line from a given line

pcreso at pcreso.com 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_le
> ngth(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
>
>
> --- On Thu, 9/10/09, Daniel Grum <daniel.grum at unibw.de> wrote:
>
>   
>> From: Daniel Grum <daniel.grum at unibw.de>
>> Subject: Re: [postgis-users] Make a shorter line from a given line
>> To: nicklas.aven at jordogskog.no
>> Cc: "PostGIS Users Discussion" 
>> <postgis-users at postgis.refractions.net>
>> Date: Thursday, September 10, 2009, 5:50 AM 
>> nicklas.aven at jordogskog.no
>> schrieb:
>>     
>>> look at st_scale
>>> http://www.postgis.org/documentation/manual-1.4.1SVN/ST_Scale.html
>>>   or maybe st_transscale
>>> http://www.postgis.org/documentation/manual-1.4.1SVN/ST_TransScale.h
>>> tml
>>> /Nicklas
>>>    
>>> 2009-09-08 Daniel Grum wrote:
>>>
>>> Hy,
>>>       
>>>> I want to make a new line from a given line
>>>>         
>> -->both geometry types are
>>     
>>>> MULTININESTRING
>>>>
>>>> Every step the new line should be "x meters"
>>>>         
>> shorter than the original.
>>     
>>>> I get the length of the line, f.e. 5000 meters
>>>>         
>> (length(the_geom)) and
>>     
>>>> after the step the new Line should be only 4000
>>>>         
>> meters.
>>     
>>>> I have a idea but it isn't ready:
>>>>
>>>> UPDATE table
>>>> SET the_geom = (SELECT
>>>>         
>> MakeLine(StartPoint(line.the_geom),
>>     
>>>> EndPoint(line_merge(line.the_geom)))
>>>> FROM public.table line
>>>> ORDER BY line.gid);
>>>>
>>>> But in if I do so I have no chance to say that the
>>>>         
>> new line has to be
>>     
>>>> 100meters shorter than the original line.
>>>>
>>>> Are there any ideas how I can solve this problem?
>>>>
>>>> Thanks,
>>>> --Daniel
>>>> _______________________________________________
>>>> postgis-users mailing list
>>>> postgis-users at postgis.refractions.net
>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>>
>>>>
>>>>         
>> That is not what I'm searching for.
>>
>> Becaus the line lies somewhere in the 2D space and the end point of 
>> the line anytime will be the same in my case...only the starting 
>> point should be changed.
>> And it should be changed automaticly, step by step, and the new 
>> starting point hvave to be on the old line/route-->like a route in a 
>> map and every time step the route will be shorter, because the unit 
>> has solved x meters.
>>
>> Do you know what I mean?
>>
>> Scale and TransScale isn't the right finction I think.
>> --daniel
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>     
>
>   
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
_______________________________________________
postgis-users mailing list
postgis-users at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users






More information about the postgis-users mailing list