private void addExteriorRing(Polygon geom, CountingPositionSequenceBuilder coordinates, List<Figure> figures) { LineString shell = geom.getExteriorRing(); int offset = coordinates.getNumAdded(); addPoints( shell, coordinates ); Figure exterior = new Figure( FigureAttribute.ExteriorRing, offset ); figures.add( exterior ); }
public void visit(Polygon polygon, int parent) { Shape shape = new Shape(); shape.type = POLYGON; shape.figureOffset = figures.size(); shape.parentOffset = parent; shapes.add(shape); // exterior Figure figure = new Figure(); figure.attributes = 2; figure.pointOffset = points.size(); figures.add(figure); for (Point point : polygon.getExteriorRing().getPoints()) { points.add(point); } // interior for (int i = 0; i < polygon.getNumInteriorRing(); i++) { figure = new Figure(); figure.attributes = 0; figure.pointOffset = points.size(); figures.add(figure); for (Point point : polygon.getInteriorRingN(i).getPoints()) { points.add(point); } } }
public void visit(Polygon polygon, int parent) { Shape shape = new Shape(); shape.type = POLYGON; shape.figureOffset = figures.size(); shape.parentOffset = parent; shapes.add(shape); // exterior Figure figure = new Figure(); figure.attributes = 2; figure.pointOffset = points.size(); figures.add(figure); for (Point point : polygon.getExteriorRing().getPoints()) { points.add(point); } // interior for (int i = 0; i < polygon.getNumInteriorRing(); i++) { figure = new Figure(); figure.attributes = 0; figure.pointOffset = points.size(); figures.add(figure); for (Point point : polygon.getInteriorRingN(i).getPoints()) { points.add(point); } } }
private <P extends Position> boolean equals (Polygon<P> first, Polygon<P> second){ if (first.getNumInteriorRing() != second.getNumInteriorRing()) return false; if (!equals(first.getExteriorRing(), second.getExteriorRing())) return false; for (int i = 0; i < first.getNumInteriorRing(); i++) { if (!equals(first.getInteriorRingN(i), second.getInteriorRingN(i))) return false; } return true; }
private static <P extends Position> Polygon to(org.geolatte.geom.Polygon<P> polygon, GeometryFactory gFact) { LinearRing shell = to(polygon.getExteriorRing(), gFact); LinearRing[] holes = new LinearRing[polygon.getNumInteriorRing()]; for (int i = 0; i < holes.length; i++) { holes[i] = to(polygon.getInteriorRingN(i), gFact); } return gFact.createPolygon(shell, holes); }
private <P extends Position> void addLinearRings(Polygon<P> geometry) { addRing(geometry.getExteriorRing()); for (int i = 0; i < geometry.getNumInteriorRing(); i++) { addDelimiter(); addRing(geometry.getInteriorRingN(i)); } }
private static org.postgis.Polygon convert(Polygon polygon) { int numRings = polygon.getNumInteriorRing(); org.postgis.LinearRing[] rings = new org.postgis.LinearRing[numRings + 1]; rings[0] = convert(polygon.getExteriorRing()); for (int i = 0; i < numRings; i++) { rings[i+1] = convert(polygon.getInteriorRingN(i)); } org.postgis.Polygon pgPolygon = new org.postgis.Polygon(rings); pgPolygon.setSrid(polygon.getSRID()); return pgPolygon; }
private static org.postgis.Polygon convert(Polygon polygon) { int numRings = polygon.getNumInteriorRing(); org.postgis.LinearRing[] rings = new org.postgis.LinearRing[numRings + 1]; rings[0] = convert(polygon.getExteriorRing()); for (int i = 0; i < numRings; i++) { rings[i + 1] = convert(polygon.getInteriorRingN(i)); } org.postgis.Polygon pgPolygon = new org.postgis.Polygon(rings); pgPolygon.setSrid(polygon.getSRID()); return pgPolygon; }
private static JGeometry convert(Polygon geometry) { int srid = geometry.getSRID(); int dim = geometry.getCoordinateDimension(); double[] points = getPoints(geometry.getPoints()); int[] elemInfo = new int[3 + geometry.getNumInteriorRing() * 3]; int offset = 0; int pointOffset = 1; elemInfo[offset++] = pointOffset; elemInfo[offset++] = 1003; // exterior elemInfo[offset++] = 1; pointOffset += geometry.getExteriorRing().getNumPoints() * dim; for (int i = 0; i < geometry.getNumInteriorRing(); i++) { elemInfo[offset++] = pointOffset; elemInfo[offset++] = 2003; elemInfo[offset++] = 1; pointOffset += geometry.getInteriorRingN(i).getNumPoints() * dim; } int gtype = dim * 1000 + (geometry.isMeasured() ? dim : 0) * 100 + GTYPE_POLYGON; return new JGeometry(gtype, srid, elemInfo, points); }
private static JGeometry convert(Polygon geometry) { int srid = geometry.getSRID(); int dim = geometry.getCoordinateDimension(); double[] points = getPoints(geometry.getPoints()); int[] elemInfo = new int[3 + geometry.getNumInteriorRing() * 3]; int offset = 0; int pointOffset = 1; elemInfo[offset++] = pointOffset; elemInfo[offset++] = 1003; // exterior elemInfo[offset++] = 1; pointOffset += geometry.getExteriorRing().getNumPoints() * dim; for (int i = 0; i < geometry.getNumInteriorRing(); i++) { elemInfo[offset++] = pointOffset; elemInfo[offset++] = 2003; elemInfo[offset++] = 1; pointOffset += geometry.getInteriorRingN(i).getNumPoints() * dim; } int gtype = dim * 1000 + (geometry.isMeasured() ? dim : 0) * 100 + GTYPE_POLYGON; return new JGeometry(gtype, srid, elemInfo, points); }
if (i == 0) { et = ElementType.EXTERIOR_RING_STRAIGHT_SEGMENTS; LinearRing<?> exteriorRing = polygon.getExteriorRing(); positionSequence = exteriorRing.getPositions(); if (!isCounterClockwise(exteriorRing)) {