Revision 45910 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/util/JTSUtils.java

View differences:

JTSUtils.java
66 66
import org.gvsig.fmap.geom.jts.aggregate.MultiPolygon2DM;
67 67
import org.gvsig.fmap.geom.jts.aggregate.MultiPolygon3D;
68 68
import org.gvsig.fmap.geom.jts.aggregate.MultiPolygon3DM;
69
import org.gvsig.fmap.geom.jts.complex.DefaultComplex;
69 70
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line2D;
70 71
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line2DM;
71 72
import org.gvsig.fmap.geom.jts.primitive.curve.line.Line3D;
......
316 317
                        multiprimitive = new MultiLine3D();
317 318
                    }
318 319
                }
319
            }
320
            if (jtsGeom instanceof MultiPolygon) {
320
            } else if (jtsGeom instanceof MultiPolygon) {
321 321
                if (jtsGeom.getFactory() instanceof MyMGeometryFactory) {
322 322
                    if (Double.isNaN(coordinate.z)) {
323 323
                        multiprimitive = new MultiPolygon2DM();
......
331 331
                        multiprimitive = new MultiPolygon3D();
332 332
                    }
333 333
                }
334
            }
335

  
336
            if (jtsGeom instanceof MultiPoint) {
334
            } else if (jtsGeom instanceof MultiPoint) {
337 335
                if (jtsGeom.getFactory() instanceof MyMGeometryFactory) {
338 336
                    if (Double.isNaN(coordinate.z)) {
339 337
                        multiprimitive = new MultiPoint2DM();
......
355 353
                    multiprimitive.addPrimitive((Primitive) createGeometry(proj, geometry));
356 354
                }
357 355
                multiprimitive.setProjection(proj);
356
                return multiprimitive;
357
            } else {
358
                int subtype;
359
                if (jtsGeom.getFactory() instanceof MyMGeometryFactory) {
360
                    if (Double.isNaN(coordinate.z)) {
361
                        subtype = Geometry.SUBTYPES.GEOM2DM;
362
                    } else {
363
                        subtype = Geometry.SUBTYPES.GEOM3DM;
364
                    }
365
                } else {
366
                    if (Double.isNaN(coordinate.z)) {
367
                        subtype = Geometry.SUBTYPES.GEOM2D;
368
                    } else {
369
                        subtype = Geometry.SUBTYPES.GEOM3D;
370
                    }
371
                }
372
                DefaultComplex complex = new DefaultComplex(subtype);
373
                for (int i = 0; i < collection.getNumGeometries(); i++) {
374
                    com.vividsolutions.jts.geom.Geometry geometry = collection.getGeometryN(i);
375
                    complex.addPrimitive((Primitive) createGeometry(proj, geometry));
376
                }
377
                complex.setProjection(proj);
378
                return complex;
358 379
            }
359
            return multiprimitive;
360 380
        }
361 381

  
362 382
        return null;

Also available in: Unified diff