for (Polygon shell : shells) { List<LinearRing> shellHoles = ((List<LinearRing>) shell.getUserData()); punched.add(geometryFactory.createPolygon((LinearRing) (shell.getExteriorRing()), shellHoles.toArray(new LinearRing[shellHoles.size()])));
throw new IllegalStateException("no maximum polygon was found?"); } else { polygonShells.add(maxPolygon.getExteriorRing().getCoordinates());
public static Geometry exteriorRing(Geometry arg0) { if (!(arg0 instanceof Polygon)) return null; Polygon _this = (Polygon) arg0; return _this.getExteriorRing(); }
shellPart[currentPart] = true; currentPart++; currentPoint += polygon.getExteriorRing().getNumPoints();
private static Geometry smoothLineString( GeometryFactory factory, GeometrySmoother smoother, Geometry geom, double fit) { if (geom instanceof LinearRing) { // Treat as a Polygon Polygon poly = factory.createPolygon((LinearRing) geom, null); Polygon smoothed = smoother.smooth(poly, fit); return smoothed.getExteriorRing(); } else { return smoother.smooth((LineString) geom, fit); } }
@DescribeProcess( title = "Exterior Ring", description = "Returns the exterior ring of a polygonal geometry." ) @DescribeResult(description = "Exterior ring of geometry") public static Geometry exteriorRing( @DescribeParameter(name = "geom", description = "Input geometry") Polygon polygon) { return polygon.getExteriorRing(); }
List toList(Polygon poly) { ArrayList list = new ArrayList(); list.add( new CoordinateSequenceEncoder( poly.getExteriorRing().getCoordinateSequence(), scale)); for (int i = 0; i < poly.getNumInteriorRing(); i++) { list.add( new CoordinateSequenceEncoder( poly.getInteriorRingN(i).getCoordinateSequence(), scale)); } return list; }
protected void write(JsonGenerator gen, Polygon p) throws IOException { gen.writeStartArray(); write(gen, p.getExteriorRing().getCoordinateSequence()); for (int i = 0; i < p.getNumInteriorRing(); i++) { write(gen, p.getInteriorRingN(i).getCoordinateSequence()); } gen.writeEndArray(); }
private static int getCurvilinearElementsCount(Polygon poly) { int sum = getCurvilinearElementsCount(poly.getExteriorRing()); for (int i = 0; i < poly.getNumInteriorRing(); i++) { sum += getCurvilinearElementsCount(poly.getInteriorRingN(i)); } return sum; }
private LinearRing makeSampleLinearRing(final GeometryFactory geomFac) { try { Polygon polyg = (Polygon) buildShiftedGeometry(makeSamplePolygon(geomFac), 0, 100); return (LinearRing) polyg.getExteriorRing(); } catch (TopologyException te) { fail("Error creating sample polygon for testing " + te); } return null; }
protected void write(Encoder output, Polygon p) throws IOException { output.write(PolyshapeWriter.KEY_POLYGON); write(output, p.getExteriorRing().getCoordinateSequence()); for (int i = 0; i < p.getNumInteriorRing(); i++) { output.startRing(); write(output, p.getInteriorRingN(i).getCoordinateSequence()); } }
@Test public void testToGeoemtry() { DefaultGeographicCRS crs = DefaultGeographicCRS.WGS84; // straight up Polygon polygon = JTS.toGeometry(new Envelope(-10, 10, -10, 10)); assertEquals(5, polygon.getExteriorRing().getCoordinateSequence().size()); // bounding box polygon = JTS.toGeometry((BoundingBox) new ReferencedEnvelope(-10, 10, -10, 10, crs)); assertEquals(5, polygon.getExteriorRing().getCoordinateSequence().size()); }
private void writePolygon(Polygon poly, OutStream os) throws IOException { writeByteOrder(os); writeGeometryType(DB2WKBConstants.wkbPolygon2D, os); writeInt(poly.getNumInteriorRing() + 1, os); writeCoordinateSequence(poly.getExteriorRing().getCoordinateSequence(), true, os); for (int i = 0; i < poly.getNumInteriorRing(); i++) { writeCoordinateSequence(poly.getInteriorRingN(i).getCoordinateSequence(), true, os); } }
public void testMultiSurface() throws Exception { GMLConfiguration gml = new GMLConfiguration(true); Parser p = new Parser(gml); Object multiSurface = p.parse(getClass().getResourceAsStream("multisurface.xml")); assertTrue(multiSurface instanceof MultiPolygon); MultiPolygon mp = (MultiPolygon) multiSurface; assertEquals(1, mp.getNumGeometries()); Polygon poly = (Polygon) mp.getGeometryN(0); assertTrue(poly.getExteriorRing() instanceof CompoundRing); } }
private LineString circleArcInBounds( double x, double y, double radius, ReferencedEnvelope bounds) { Point center = gf.createPoint(new Coordinate(x, y)); Polygon buffered = (Polygon) center.buffer(radius, 64); Polygon mask = JTS.toGeometry(bounds); Geometry intersection = buffered.getExteriorRing().intersection(mask); return (LineString) intersection; }
@Test public void testFullyOutsideCircle() throws Exception { Point p = (Point) wkt.read("POINT(5 5)"); LineString ls = ((Polygon) p.buffer(10)).getExteriorRing(); Geometry clipped = clipper.clip(ls, false); assertNull(clipped); showResult("Circle around", ls, clipped); }
@Test public void testCrossingCircle() throws Exception { Point p = (Point) wkt.read("POINT(5 5)"); LineString ls = ((Polygon) p.buffer(6)).getExteriorRing(); MultiLineString clipped = (MultiLineString) clipper.clip(ls, false); assertEquals(4, clipped.getNumGeometries()); showResult("Circle around", ls, clipped); }
public void testPolygon3D() throws Exception { GML3MockData.polygon3D(document, document, true); Polygon polygon = (Polygon) parse(); assertNotNull(polygon); LineString exterior = polygon.getExteriorRing(); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(exterior.getCoordinateN(0))); LineString interior = polygon.getInteriorRingN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(interior.getCoordinateN(0))); }
public void testPolygonPosList3D() throws Exception { GML3MockData.polygonWithPosList3D(document, document, true); Polygon polygon = (Polygon) parse(); assertNotNull(polygon); LineString exterior = polygon.getExteriorRing(); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(exterior.getCoordinateN(0))); LineString interior = polygon.getInteriorRingN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(interior.getCoordinateN(0))); }
public void test3D() throws Exception { GML3MockData.multiPolygon3D(document, document); MultiPolygon multiPolygon = (MultiPolygon) parse(); assertNotNull(multiPolygon); assertEquals(2, multiPolygon.getNumGeometries()); Polygon polygon = (Polygon) multiPolygon.getGeometryN(0); LineString exterior = polygon.getExteriorRing(); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(exterior.getCoordinateN(0))); LineString interior = polygon.getInteriorRingN(0); assertTrue(new Coordinate(1d, 2d, 10d).equals3D(interior.getCoordinateN(0))); }