[postgis-users] Using ST_intersection on Polygons returns multiple types

Rebecca Clarke rebecca at clarke.net.nz
Wed Mar 7 09:58:50 PST 2012


Hi there

I have 2000 polygons in table A and I want to show only the polygons that
intersect with the bounding box specified in table B  . So I do this:

    SELECT the_geom
FROM  A
WHERE st_intersects(the_geom, (select the_geom from B))
AND ST_GeometryType(the_geom) = 'ST_Polygon'

This query returns all the intersecting polygons. When I run
st_geometrytype they are all St_Polygon.

Some of the polygons are large and exceed the boxes boundary so I use this
query to trim them:

    SELECT st_intersection(the_geom, (select the_geom from B)) as the_geom
FROM  A
WHERE st_intersects(the_geom, (select the_geom from B))
AND ST_GeometryType(the_geom) = 'ST_Polygon'


The problem I'm having is that when I use the st_intersection, instead of
returning just St_Polygon's, it's returning other types as well:

ST_LineString
ST_MultiLineString
ST_MultiPolygon
ST_Polygon

I need to output the results to a SHP file and this is preventing me from
doing so seeing there is more than one Geom Type.

Any ideas how I can keep the results of the st_intersection as just
St_Polygons? Am I doing something wrong?

Regards

Rebecca
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20120307/85d0c59e/attachment.html>


More information about the postgis-users mailing list