3

I'm still pretty new to this stuff, so bear with me. In PostGIS how could I find a polygon that would contain all the linestring records in a given table?

1 Answer 1

2

If you know beforehand what your polygon is, you could do:

SELECT * from linetable WHERE ST_Intersects(linetable.the_geom,(SELECT the_geom from polytable where id='123'));

or

SELECT * FROM linetable WHERE ST_Intersects(linetable.the_geom, ST_GeomFromText('POLYGON((0 0,0 1,1 1,0 1,0 0))');

There are many ways to fetch the polygon you want, but the path is to try for ST_Intersects = true

OR do you need the polygon that encloses all linestrings?

If so, you can use ConvexHull:

https://postgis.net/docs/ST_ConvexHull.html

3
  • The latter. And actually, ST_Envelope is more up my problems alley. But your answer pointed me in the right direction. Thanks. Jul 23, 2010 at 17:10
  • No problem Eric. I wasn't sure if ConvexHull or Envelope would do the trick, but I'm glad that it worked. Jul 23, 2010 at 17:16
  • And actually, I was wrong about ST_Envelope. ST_Extent did the trick though. Jul 23, 2010 at 17:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.