]> granicus.if.org Git - postgis/commitdiff
Fix setSridRecurse function in JTS
authorMarkus Schaber <markus@schabi.de>
Wed, 19 Jul 2006 09:45:53 +0000 (09:45 +0000)
committerMarkus Schaber <markus@schabi.de>
Wed, 19 Jul 2006 09:45:53 +0000 (09:45 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@2409 b70326c6-7e19-0410-871a-916f4a2858ee

jdbc2/jtssrc/org/postgis/jts/JtsGeometry.java

index 22584328757b4e8dc84889331e828d231605d551..82888b02aaf05bade4f3ebeb5ac1b23ce73a799f 100644 (file)
@@ -33,6 +33,7 @@ import com.vividsolutions.jts.geom.CoordinateSequenceFactory;
 import com.vividsolutions.jts.geom.Geometry;
 import com.vividsolutions.jts.geom.GeometryCollection;
 import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.Polygon;
 import com.vividsolutions.jts.geom.PrecisionModel;
 import com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory;
 import com.vividsolutions.jts.io.WKTReader;
@@ -108,12 +109,19 @@ public class JtsGeometry extends PGobject {
     }
 
     /** Recursively set a srid for the geometry and all subgeometries */
-    public static void setSridRecurse(final Geometry result, final int srid) {
-        result.setSRID(srid);
-        if (result instanceof GeometryCollection) {
-            final int subcnt = result.getNumGeometries();
+    public static void setSridRecurse(final Geometry geom, final int srid) {
+        geom.setSRID(srid);
+        if (geom instanceof GeometryCollection) {
+            final int subcnt = geom.getNumGeometries();
             for (int i = 0; i < subcnt; i++) {
-                setSridRecurse(result.getGeometryN(i), srid);
+                setSridRecurse(geom.getGeometryN(i), srid);
+            }
+        } else if (geom instanceof Polygon) {
+            Polygon poly = (Polygon) geom;
+            poly.getExteriorRing().setSRID(srid);
+            final int subcnt = poly.getNumInteriorRing();
+            for (int i = 0; i < subcnt; i++) {
+                poly.getInteriorRingN(i).setSRID(srid);
             }
         }
     }