Thank you Andrea, it works!!

 recapitulation for others user: if you have 2 point and you need one segment 
of the nearest layer

// select nearest layer (if multilinestring use ST_LineMerge(pt.the_geom) AS 
pt_geom)
SELECT pt.the_geom AS pt_geom,  pt.gid AS pt_id
FROM line_layer pt
WHERE ST_DWithin(pt.the_geom, ST_GeomFromText('LINESTRING(1708654.405649647 4776470.575996869,1708894.1262744942 4776331.757517987)'), 10.0)


// SNAP points on the prev layer foreach point
SELECT ST_AsText(ST_Line_Interpolate_Point(          pt_geom,
          ST_Line_Locate_Point(pt_geom, 
ST_GeomFromText('POINT(1708654.405649647 4776470.575996869)'))
 ))

SELECT ST_AsText(ST_Line_Interpolate_Point(          pt_geom,
          ST_Line_Locate_Point(pt_geom, 
ST_GeomFromText('POINT(1708894.1262744942 4776331.757517987)'))
 ))

// get segment from two prev points
SELECT ST_AsText(ST_Line_Substring(pt_geom, ST_Line_Locate_Point(pt_geom,ST_GeomFromText('POINT(1708673.98843775 4776461.03369148)')),
     ST_Line_Locate_Point(pt_geom,ST_GeomFromText('POINT(1708940.5269833 
4776286.80931636)')))
)

Now my problem is: if the "select nearest layer" return 2 or more layers? It's same solution? Or I need to intersect the resultant layer?

thanks again



        


Il 11/09/10 18.30, Andrea Peri ha scritto:
Thanks, I tried this function, but it returns all points and I need only that
are inside a segment between two points.

ie:

MULTILINESTRING((0 0,1 1,1 2,2 3,3 2,5 4))
POINT(1 1) POINT(3 2)

I want LINESTRING(1 1,1 2,2 3,3 2)

Perhaps something like this is like for you.

ST_Line_Substring(geometry_line,ST_Line_Locate_Point(geometry_line,geometryPoint_start),ST_Line_Locate_Point(geometry_line,geometryPoint_end))


where

geometryPoint_start = ST_GeomFromText('POINT(1,1)');
geometryPoint_end = ST_GeomFromText('POINT(3,2)');


--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------



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

Reply via email to