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 void addInteriorRings(Polygon<?> geom, CountingPositionSequenceBuilder<?> coordinates, List<Figure> figures) { for ( int idx = 0; idx < geom.getNumInteriorRing(); idx++ ) { addInteriorRing( geom.getInteriorRingN( idx ), coordinates, figures ); } }
protected void writeNumRings(Polygon<P> geom, ByteBuffer byteBuffer) { byteBuffer.putUInt(geom.isEmpty() ? 0 : geom.getNumInteriorRing() + 1); }
private <P extends Position> int getPolygonSize(Polygon<P> geom) { //to hold the number of linear rings int size = ByteBuffer.UINT_SIZE; //for each linear ring, a UINT holds the number of points size += geom.isEmpty() ? 0 : ByteBuffer.UINT_SIZE * (geom.getNumInteriorRing() + 1); size += getPointByteSize(geom) * geom.getNumPositions(); return size; }
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 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 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); }
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; }
protected SDOGeometry addPolygon(SDOGeometry sdoGeom, Polygon polygon) { final int numInteriorRings = polygon.getNumInteriorRing(); final ElemInfo info = new ElemInfo(numInteriorRings + 1); int ordinatesPreviousOffset = 0;