Revision 47669 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
24 24

  
25 25
import com.vividsolutions.jts.geom.Coordinate;
26 26
import com.vividsolutions.jts.geom.CoordinateSequence;
27
import com.vividsolutions.jts.geom.CoordinateSequenceFactory;
28
import com.vividsolutions.jts.geom.CoordinateSequences;
27 29
import com.vividsolutions.jts.geom.GeometryCollection;
30
import com.vividsolutions.jts.geom.GeometryFactory;
28 31
import com.vividsolutions.jts.geom.LineSegment;
29 32
import com.vividsolutions.jts.geom.LineString;
30 33
import com.vividsolutions.jts.geom.LinearRing;
......
45 48
import static org.gvsig.fmap.geom.Geometry.JOIN_STYLE_BEVEL;
46 49
import static org.gvsig.fmap.geom.Geometry.JOIN_STYLE_MITRE;
47 50
import static org.gvsig.fmap.geom.Geometry.JOIN_STYLE_ROUND;
48
import org.gvsig.fmap.geom.GeometryException;
49 51
import org.gvsig.fmap.geom.aggregate.MultiPrimitive;
50 52
import org.gvsig.fmap.geom.exception.CreateGeometryException;
51 53
import org.gvsig.fmap.geom.jts.GeometryJTS;
......
210 212
    }
211 213

  
212 214
    public static LinearRing createJTSLinearRing(CoordinateSequence coordinates) {
213
        return getFactory(coordinates).createLinearRing(coordinates);
215
        GeometryFactory fact = getFactory(coordinates);
216
        return fact.createLinearRing(CoordinateSequences.ensureValidRing(fact.getCoordinateSequenceFactory(), coordinates));
214 217
    }
215 218

  
219
    public static LinearRing createJTSLinearRing(Coordinate[] coordinates) {
220
        GeometryFactory fact = getFactory(coordinates);
221
        CoordinateSequenceFactory coordinateSequenceFactory = fact.getCoordinateSequenceFactory();
222
        return fact.createLinearRing(CoordinateSequences.ensureValidRing(coordinateSequenceFactory, coordinateSequenceFactory.create(coordinates)));
223
    }
224

  
216 225
    public static MultiPoint createJTSMultiPoint(CoordinateSequence coordinates) {
217 226
        return getFactory(coordinates).createMultiPoint(coordinates);
218 227
    }
......
494 503
     */
495 504
    public static com.vividsolutions.jts.geom.Polygon createJTSPolygon(ArrayListCoordinateSequence coordinates,
496 505
        List<Ring> interiorRings) {
497
        com.vividsolutions.jts.geom.GeometryFactory factory = getFactory(coordinates);
506
        com.vividsolutions.jts.geom.GeometryFactory theFactory = getFactory(coordinates);
498 507

  
499
        LinearRing shell = factory.createLinearRing(coordinates);
508
        LinearRing shell = theFactory.createLinearRing(coordinates);
500 509
        LinearRing[] holes = new LinearRing[interiorRings.size()];
501 510
        for(int i=0; i<interiorRings.size(); i++){
502 511
            Ring ring = interiorRings.get(i);
503 512
            holes[i] = (LinearRing) ((GeometryJTS) ring).getJTS();
504 513
        }
505
        return factory.createPolygon(shell, holes);
514
        return theFactory.createPolygon(shell, holes);
506 515
    }
507 516

  
508 517

  
......
693 702
     * @return
694 703
     */
695 704
    public static Geometry offsetRawOpenLine(IProjection proj, ArrayListCoordinateSequence coordinates, double distance) {
696
        com.vividsolutions.jts.geom.GeometryFactory factory = getFactory(coordinates);
705
        com.vividsolutions.jts.geom.GeometryFactory theFactory = getFactory(coordinates);
697 706

  
698 707
        BufferParameters bufParams = JTSUtils.getBufferParameters();
699 708
        LineString jtsGeom = JTSUtils.createJTSLineString(coordinates);
700 709

  
701 710
         OffsetCurveBuilder ocb = new
702
         OffsetCurveBuilder(factory.getPrecisionModel(), bufParams);
711
         OffsetCurveBuilder(theFactory.getPrecisionModel(), bufParams);
703 712
         Coordinate[] coords = ocb.getOffsetCurve(jtsGeom.getCoordinates(), distance);
704
         CoordinateSequence coordSequence = factory.getCoordinateSequenceFactory().create(coords);
713
         CoordinateSequence coordSequence = theFactory.getCoordinateSequenceFactory().create(coords);
705 714
         com.vividsolutions.jts.geom.Geometry offsetGeom = JTSUtils.createJTSLineString(coordSequence);
706 715

  
707 716
         return JTSUtils.createGeometry(proj, offsetGeom);

Also available in: Unified diff