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
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