Maybe you could share the polygon - does it pass tests like st_isvalid()? cheers
Ben On 27/07/2011, at 4:16 AM, Mr. Puneet Kishor wrote: > > On Jul 26, 2011, at 9:56 AM, Sandro Santilli wrote: > >> On Tue, Jul 26, 2011 at 09:47:23AM -0500, Mr. Puneet Kishor wrote: >>> >>> On Jul 26, 2011, at 9:34 AM, Sandro Santilli wrote: >>> >>>> On Tue, Jul 26, 2011 at 09:31:50AM -0500, Mr. Puneet Kishor wrote: >>>> >>>>> ERROR: function st_interiorringn(geometry) does not exist >>>> >>>> Check your parens, the call above is missing a parameter (ring number). >>>> >>> >>> That is a bit embarrassing. Yes, I had missed out on giving the ring >>> number. However, still no luck -- >>> >>> SELECT objectid, >>> ST_NRings(the_geom) num_of_rings, >>> ST_NumInteriorRings(the_geom) num_of_int_rings, >>> ST_NumPoints(ST_ExteriorRing(ST_GeometryN(the_geom,1))) >>> num_of_points_ext_ring, >>> ST_AsText(the_geom) wkt_feature, >>> ST_AsText(ST_MakePolygon(ST_ExteriorRing(ST_GeometryN(the_geom, 1)))) >>> wkt_ext_ring, >>> ST_AsText(ST_MakePolygon(ST_InteriorRingN(ST_GeometryN(the_geom, 2), >>> 2))) wkt_int_ring_a, >>> ST_AsText(ST_MakePolygon(ST_GeometryN(the_geom, 2))) wkt_int_ring_b >>> FROM table >>> WHERE objectid = 280; >>> >>> objectid: 280; >>> num_of_rings: 4; >>> num_of_int_rings: 3; >>> num_of_points_ext_ring: 496; >>> wkt_feature: "MULTIPOLYGON(((<1>),(<2>),(<3>),(<4>))"; >>> wkt_ext_ring: "POLYGON((<1>))"; >>> wkt_int_ring_a: ""; >>> wkt_int_ring_b: "" >>> >>> As you see, I tried to get the interior ring "n" two different ways. Not >>> getting anywhere. >> >> Write down a matrix of all combinations you tried. >> Use real paper, and pencil. >> Publish a scanned version. >> > > So, as advised, I got a real pencil and paper, drew out all my options, > scanned them in, and discovered that I had a poor understanding on the > relationship of MULTIPOLYGONs and GEOMETRIES. Turns out, my MULTIPOLYGON has > 1 GEOMETRY, 4 rings, one being exterior and three interior rings. Hence, an > expression like the following works well > > ST_NumPoints(ST_InteriorRingN(ST_GeometryN(the_geom, 1), 2)) > > Now, here is where it gets interesting. My test feature in reality is a lot > more complicated, as can be seen in the attached image (see the blue bordered > multipoly). I took the shapefile and shp2pgsql-ed it, and now I get only 4 > rings in my query. My guess is that these four rings are the ones on the top > of the image. So, I thought maybe I have another GEOMETRY that I am missing > out on. But, no... ST_NumGeometries(the_geom) = 1. > > Can anyone theorize what happened to the rest of the feature? How did it get > lost in translation? Was it simply ignored, or was it made into a different > feature? Or, is it there, but I still haven't understood the > MULTIPOLYGON/GEOMETRY/POLYGON/LINERSTRING nexus really well. > <280.png>_______________________________________________ > postgis-users mailing list > postgis-users@postgis.refractions.net > http://postgis.refractions.net/mailman/listinfo/postgis-users _______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users