On Jul 25, 2011, at 3:44 PM, Sandro Santilli wrote: > On Mon, Jul 25, 2011 at 03:40:34PM -0500, Mr. Puneet Kishor wrote: >> Please help me understand the following >> >> ==== >> SELECT >> ST_Nrings(the_geom) nr, >> ST_NumInteriorRings(the_geom) nir, >> ST_AsText(the_geom) WKT >> FROM table >> WHERE objectid = 280; >> >> nr nir WKT >> -- --- ---------------------------------------------------------------- >> 4 3 "MULTIPOLYGON(((..),(..),(..),(..)))" >> >> ==== >> >> Looking at the above, I am assuming the first (..) is the exterior ring, and >> the remaning three (..) are the 3 interior rings. However, >> >> ==== >> SELECT ST_ExteriorRing(the_geom) er >> FROM table >> WHERE objectid = 280; >> >> ERROR: ExteriorRing: geom is not a polygon >> ==== >> >> >> So, what is going on? Of course, the docs say that ST_ExteriorRing doesn't >> work on a MULTIPOLYGON. So, is the above only an implementation anomaly, and >> I can treat the first ring as an exterior ring? Or, is it really something >> else? > > All your rings are wrapper in another pair of parens, which identify > a component of the MULTIPOLYGON, that is a POLYGON. You must extract > the Polygon to use ST_ExteriorRing against it. So your query would be: > > SELECT ST_ExteriorRing(ST_GeometryN(the_geom,1)) er > FROM table > WHERE objectid = 280; >
Thanks. The above works. So, does this mean that given "MULTIPOLYGON(((1),(2),(3),(4)))", 1 indeed is an exterior ring, and 2-4 are interior rings, and the "entity" does have 4 rings kinda like below? +-------------------+ | | | +-----+ +---+ | | | | | 3 | | | | 2 | +---+ | | +-----+ | | +--------+ | | | | | | 1 | 4 | | | | | | | +--------+ | +-------------------+ Puneet. _______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users