public Ring createRing(final List curves) { Ring result = new RingImpl(crs); if (curves != null) result.getGenerators().addAll(curves); return result; }
public SurfaceBoundaryImpl clone() throws CloneNotSupportedException { // Test OK // Clone exterior ring and interior rings Ring newExterior = (Ring) this.getExterior().clone(); List<Ring> newInteriors = new ArrayList<Ring>(); Iterator<Ring> interiors = this.getInteriors().iterator(); while (interiors.hasNext()) { newInteriors.add((Ring) interiors.next().clone()); } // Use the cloned rings to create a new SurfaceBoundary return new SurfaceBoundaryImpl(getCoordinateReferenceSystem(), newExterior, newInteriors); }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final SurfaceBoundaryImpl other = (SurfaceBoundaryImpl) obj; if (exterior == null) { if (other.exterior != null) return false; } else if (!exterior.equals(other.exterior)) return false; if (interior == null) { if (other.interior != null) return false; } else if (!interior.equals(other.interior)) return false; return true; }
/** * Parses the WKT surface. * * @param wktGeometry the wkt geometry * @param geometry the geometry */ private static void parseWKTSurface( WKTGeometry wktGeometry, org.opengis.geometry.Geometry geometry) { wktGeometry.setGeometryType(getWKTType(WKT_POLYGON)); SurfaceImpl surfaceImpl = (SurfaceImpl) geometry; for (Ring ring : surfaceImpl.getBoundaryRings()) { WKTSegmentList ptList = new WKTSegmentList(); wktGeometry.addSegmentList(0, ptList); for (Primitive primitive : ring.getElements()) { if (primitive instanceof CurveImpl) { CurveImpl curve = (CurveImpl) primitive; extractLineSegments(curve, ptList); } } } }
CoordinateReferenceSystem thisCRS = this.getCoordinateReferenceSystem(); if (exterior != null) { if (this.getDimension() != exterior.getCoordinateDimension()) { throw new MismatchedDimensionException(); .getCoordinateReferenceSystem(); if (!CRS.equalsIgnoreMetadata(thisCRS,exteriorCRS)) { throw new MismatchedReferenceSystemException(); for (Ring ring : interiors) { if (ring != null) { if (this.getDimension() != ring.getCoordinateDimension()) { throw new MismatchedDimensionException(); .getCoordinateReferenceSystem()) ) { throw new MismatchedReferenceSystemException();
.getEnvelope(); Envelope testEnv = new Envelope(env.getLowerCorner().getOrdinate(X), env .getUpperCorner().getOrdinate(X), env.getLowerCorner().getOrdinate(Y), env .getUpperCorner().getOrdinate(Y)); DirectPosition dp = testRing.getRepresentativePoint(); Coordinate testPt = new Coordinate(dp.getCoordinates()); Ring tryRing = tryShell.getRing(); env = (EnvelopeImpl) tryRing.getEnvelope(); Envelope tryEnv = new Envelope(env.getLowerCorner().getOrdinate(X), env .getUpperCorner().getOrdinate(X), env.getLowerCorner().getOrdinate(Y), env env = (EnvelopeImpl) minShell.getRing().getEnvelope(); minEnv = new Envelope(env.getLowerCorner().getOrdinate(X), env .getUpperCorner().getOrdinate(X), env.getLowerCorner().getOrdinate(Y),
public Envelope getEnvelope() { /* Return Envelope of the exterior Ring */ return this.exterior.getEnvelope(); }
/** * Parses the WKT multi surface. * * @param wktGeometry the wkt geometry * @param index the index * @param primitive the primitive */ private static void parseWKTMultiSurface( WKTGeometry wktGeometry, int index, Primitive primitive) { wktGeometry.setGeometryType(getWKTType(WKT_MULTIPOLYGON)); SurfaceImpl surfaceImpl = (SurfaceImpl) primitive; for (Ring ring : surfaceImpl.getBoundaryRings()) { WKTSegmentList ptList = new WKTSegmentList(); for (Primitive ringPrimitive : ring.getElements()) { if (ringPrimitive instanceof CurveImpl) { CurveImpl curve = (CurveImpl) ringPrimitive; extractLineSegments(curve, ptList); } } wktGeometry.addSegmentList(index, ptList); } }
/** * {@inheritDoc } */ @Override public Ring createRing(final List curves) { Ring result = new JTSRing(crs); if (curves != null) result.getGenerators().addAll(curves); return result; }
s.setCoordinateReferenceSystem(coordinateReferenceSystem); ((JTSRing)s.getExterior()).setCoordinateReferenceSystem(coordinateReferenceSystem); for (Primitive p : s.getExterior().getElements()) { if (p instanceof JTSCurve) { JTSCurve curve = (JTSCurve) p; for (Ring ring : s.getInteriors()) { ((JTSRing)ring).setCoordinateReferenceSystem(coordinateReferenceSystem); for (Primitive p : ring.getElements()) { if (p instanceof JTSCurve) { JTSCurve curve = (JTSCurve) p;
public Ring createRing(final List curves) { Ring result = new RingImpl(crs); if (curves != null) result.getGenerators().addAll(curves); return result; }
for (Primitive p : out.getElements()) { if (p instanceof JTSCurve) { JTSCurve curve = (JTSCurve) p; for (Ring ring : inte) { ((JTSRing) ring).setCoordinateReferenceSystem(coordinateReferenceSystem); for (Primitive p : ring.getElements()) { if (p instanceof JTSCurve) { JTSCurve curve = (JTSCurve) p;
public DirectPosition getRepresentativePoint() { // ok // Return first point of the exterior ring of the surface boundary return ((CurveImpl)this.getExterior().getGenerators().get(0)).getStartPoint(); }
for (Ring ring : polygon.getBoundary().getInteriors()) { ((JTSRing) ring).setCoordinateReferenceSystem(getCoordinateReferenceSystem()); for (Primitive p : ring.getElements()) { if (p instanceof JTSCurve) { JTSCurve curve = (JTSCurve) p;
private String ringCoordToString(Ring r) { List<OrientableCurve> orientableCurves = r.getGenerators(); String rString = directPositionToString(((Curve) orientableCurves.get(0)).getStartPoint()); for (int i = 0; i < orientableCurves.size(); i++) { rString += curveCoordToStringWithoutFirstCoord((Curve) orientableCurves.get(i)); } return rString; }
assertEquals(expPolygon.getCoordinateReferenceSystem(), resPolygon.getCoordinateReferenceSystem()); assertEquals(expPolygon.getBoundary().getCoordinateReferenceSystem(), resPolygon.getBoundary().getCoordinateReferenceSystem()); JTSCurve expCurve = (JTSCurve) expPolygon.getBoundary().getExterior().getElements().iterator().next(); JTSCurve resCurve = (JTSCurve) resPolygon.getBoundary().getExterior().getElements().iterator().next(); JTSLineString expLine = (JTSLineString) expCurve.getSegments().get(0); JTSLineString resLine = (JTSLineString) resCurve.getSegments().get(0);
public static DirectPosition[] getDirectPositions(final Ring ring) { final List directPositionList = new ArrayList(); final List/*<Curve>*/ generators = ring.getGenerators(); for (int i = 0; i < generators.size(); i++) { final Curve curve = (Curve) generators.get(i); final List/*<CurveSegments>*/ segments = curve.getSegments(); for (int j = 0; j < segments.size(); j++) { final CurveSegment curveSegment = (CurveSegment) segments.get(j); if (curveSegment instanceof LineString) { final LineString lineString = (LineString) curveSegment; final DirectPosition[] positions = getDirectPositions(lineString); directPositionList.addAll(Arrays.asList(positions)); /*final List<Position> positions = lineString.getControlPoints().positions(); for (int k = 0; k < positions.size(); k++) { Position position = (Position) positions.get(k); directPositionList.add(position.getPosition()); }*/ } } } if (directPositionList.size() > 0) { return (DirectPosition[]) directPositionList.toArray(new DirectPosition[directPositionList.size()]); } return new DirectPosition[0]; }
JTSSurfaceBoundary resBoundary = (JTSSurfaceBoundary) result.getPatches().get(0).getBoundary(); JTSCurve expCurve = (JTSCurve) expBoundary.getExterior().getElements().iterator().next(); JTSCurve resCurve = (JTSCurve) resBoundary.getExterior().getElements().iterator().next();
public static DirectPosition[] getDirectPositions(final Ring ring) { final List directPositionList = new ArrayList(); // Cast below can be removed when Types will be allowed to abandon Java 1.4 support. final List/*<Curve>*/ generators = (List) ring.getGenerators(); for (int i = 0; i < generators.size(); i++) { final Curve curve = (Curve) generators.get(i); final List/*<CurveSegments>*/ segments = curve.getSegments(); for (int j = 0; j < segments.size(); j++) { final CurveSegment curveSegment = (CurveSegment) segments.get(j); if (curveSegment instanceof LineString) { final LineString lineString = (LineString) curveSegment; final DirectPosition[] positions = getDirectPositions(lineString); directPositionList.addAll(Arrays.asList(positions)); /*final List<Position> positions = lineString.getControlPoints().positions(); for (int k = 0; k < positions.size(); k++) { Position position = (Position) positions.get(k); directPositionList.add(position.getPosition()); }*/ } } } if (directPositionList.size() > 0) { return (DirectPosition[]) directPositionList.toArray(new DirectPosition[directPositionList.size()]); } return new DirectPosition[0]; }
public static DirectPosition[] getDirectPositions(final Ring ring) { final List directPositionList = new ArrayList(); // Cast below can be removed when GeoAPI will be allowed to abandon Java 1.4 support. final List/*<Curve>*/ generators = (List) ring.getGenerators(); for (int i = 0; i < generators.size(); i++) { final Curve curve = (Curve) generators.get(i); final List/*<CurveSegments>*/ segments = curve.getSegments(); for (int j = 0; j < segments.size(); j++) { final CurveSegment curveSegment = (CurveSegment) segments.get(j); if (curveSegment instanceof LineString) { final LineString lineString = (LineString) curveSegment; final DirectPosition[] positions = getDirectPositions(lineString); directPositionList.addAll(Arrays.asList(positions)); /*final List<Position> positions = lineString.getControlPoints().positions(); for (int k = 0; k < positions.size(); k++) { Position position = (Position) positions.get(k); directPositionList.add(position.getPosition()); }*/ } } } if (directPositionList.size() > 0) { return (DirectPosition[]) directPositionList.toArray(new DirectPosition[directPositionList.size()]); } return new DirectPosition[0]; }