On May 7, 2012, at 3:44 PM, Stephen Woodbridge wrote: > Hi Puneet, > > First if you intersect a line with a polygon you should expect to get back: > > 1. a line if it crosses the polygon or lies alont an edge of it > 2. or a point if it touches a vertex > 3. or a collection of these if there are multiple instances along the line > > The results are always returned in a GEOMETRYCOLLECTION. > > Also you should expect to get one result row for every row in TABLE > > If you only want, results for rows the intersect then add a WHERE clause > > SELECT ST_AsText(ST_Intersection(ST_GeomFromText('LINESTRING(<p0>,<p2>)', > 4326), the_geom)) > FROM table > WHERE ST_Intersects(ST_GeomFromText('LINESTRING(<p0>,<p2>)', 4326), the_geom); > >
Thanks... the above works well. But, now I am confused by a slightly different problem. How do I guarantee that the returned results are in the same order as the direction of the line? For example, given the line below (<p0> .. <pn>), how do I guarantee that I will get back "a, b" and not "b, a"? Suggestions? > -Steve > > On 5/7/2012 1:36 PM, Puneet Kishor wrote: >> Given a line, I want to get the points at which it intersects a polygon >> dataset. >> >> +--------------+ >> | | >> +--------+ | >> | a | b | >> ====o========o==============o======= >> p0 |p1 |p2 |p3 pn >> +--------+ | >> | | >> | | >> +--------------+ >> >> In the figure above, I want to get the following >> >> poly_id point1 point2 >> ------- ------ ------ >> a p1 p2 >> b p2 p3 >> >> SELECT >> ST_AsText(ST_Intersection(ST_GeomFromText('LINESTRING(<p0>,<p2>)', 4326), >> the_geom)) >> FROM table; >> >> But I back N 'GEOMETRYCOLLECTION EMPTY' where N = number of rows in the >> 'table'. From what I understand, that indicates "the geometries do not share >> any space (are disjoint)". But, I know that is not correct. So, my query is >> formulated incorrectly. What am I doing wrong? >> _______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users