/** * Creates an empty {@code MultiPolygon} for a coordinate reference system * * @param crs the coordinate reference system for the created {@code MultiPolygon} * @param <P> the type of {@code Position} * @return an empty {@code MultiPolygon} with the specified coordinate reference system */ public static <P extends Position> MultiPolygon<P> mkEmptyMultiPolygon(CoordinateReferenceSystem<P> crs) { return new MultiPolygon<>(crs); }
private static MultiPolygon convertMultiPolygon(JGeometry geometry) { JGeometry[] elements = geometry.getElements(); if (elements == null || elements.length == 0) { return MultiPolygon.createEmpty(); } Polygon[] polygons = new Polygon[elements.length]; for (int i = 0; i < elements.length; i++) { polygons[i] = convertPolygon(elements[i]); } return new MultiPolygon(polygons); }
private static org.postgis.MultiPolygon convert(MultiPolygon multiPolygon) { org.postgis.Polygon[] pgPolygons = new org.postgis.Polygon[multiPolygon.getNumGeometries()]; for (int i = 0; i < pgPolygons.length; i++) { pgPolygons[i] = convert(multiPolygon.getGeometryN(i)); } org.postgis.MultiPolygon pgMultiPolygon = new org.postgis.MultiPolygon(pgPolygons); pgMultiPolygon.setSrid(multiPolygon.getSRID()); return pgMultiPolygon; }
private static <P extends Position> MultiPolygon to(org.geolatte.geom.MultiPolygon<P> multiPolygon, GeometryFactory gFact) { Polygon[] polygons = new Polygon[multiPolygon.getNumGeometries()]; for (int i = 0; i < multiPolygon.getNumGeometries(); i++) { polygons[i] = to(multiPolygon.getGeometryN(i), gFact); } return gFact.createMultiPolygon(polygons); }
@Override @SuppressWarnings("unchecked") public <P extends Position, G extends Geometry<P>> SDOGeometry encode(G geom) { MultiPolygon<P> multiPolygon = (MultiPolygon<P>)geom; final int dim = multiPolygon.getCoordinateDimension(); final int lrsPos = getLRSDim(multiPolygon); SDOGType gType = new SDOGType(dim, lrsPos, TypeGeometry.MULTIPOLYGON); SDOGeometry sdoGeom = new SDOGeometry(gType, geom.getSRID(), null, null, null); for (int i = 0; i < multiPolygon.getNumGeometries(); i++) { try { final Polygon<P> pg = multiPolygon.getGeometryN(i); sdoGeom = addPolygon(sdoGeom, pg); } catch (Exception e) { throw new RuntimeException("Found geometry that was not a geometry in MultiPolygon"); } } return sdoGeom; } }
@SuppressWarnings("unchecked") public <Q extends Position> MultiPolygon<Q> as(Class<Q> castToType){ checkCast(castToType); return (MultiPolygon<Q>)this; }
public void visit(MultiPolygon collection, int parent) { Shape shape = new Shape(); shape.type = MULTI_POLYGON; shape.figureOffset = figures.size(); shape.parentOffset = parent; shapes.add(shape); parent = shapes.size() - 1; for (int i = 0; i < collection.getNumGeometries(); i++) { visit(collection.getGeometryN(i), parent); } }
public static <P extends Position> MultiPolygon<P> mkMultiPolygon(Polygon<P>... polygons) { return new MultiPolygon<P>(polygons); }
private static MultiPolygon convertMultiPolygon(JGeometry geometry) { JGeometry[] elements = geometry.getElements(); if (elements == null || elements.length == 0) { return MultiPolygon.createEmpty(); } Polygon[] polygons = new Polygon[elements.length]; for (int i = 0; i < elements.length; i++) { polygons[i] = convertPolygon(elements[i]); } return new MultiPolygon(polygons); }
private static org.postgis.MultiPolygon convert(MultiPolygon multiPolygon) { org.postgis.Polygon[] pgPolygons = new org.postgis.Polygon[multiPolygon.getNumGeometries()]; for (int i = 0; i < pgPolygons.length; i++) { pgPolygons[i] = convert(multiPolygon.getGeometryN(i)); } org.postgis.MultiPolygon pgMultiPolygon = new org.postgis.MultiPolygon(pgPolygons); pgMultiPolygon.setSrid(multiPolygon.getSRID()); return pgMultiPolygon; }
public void visit(MultiPolygon collection, int parent) { Shape shape = new Shape(); shape.type = MULTI_POLYGON; shape.figureOffset = figures.size(); shape.parentOffset = parent; shapes.add(shape); parent = shapes.size() - 1; for (int i = 0; i < collection.getNumGeometries(); i++) { visit(collection.getGeometryN(i), parent); } }
public static <P extends Position> MultiPolygon<P> mkMultiPolygon(List<Polygon<P>> polygons) { Polygon<P>[] pArr = new Polygon[polygons.size()]; return new MultiPolygon<P>(polygons.toArray(pArr)); }
data.add(MultiPolygon.createEmpty()); for (int i = 0; i < size; i++) { if (data.get(i) instanceof Polygon) { data.add(new MultiPolygon(new Polygon[]{(Polygon) data.get(i)}));
@SuppressWarnings("unchecked") @SafeVarargs public static <P extends Position> MultiPolygon<P> multipolygon(CoordinateReferenceSystem<P> crs, PolygonToken<P>... tokens) { if (tokens.length == 0) return new MultiPolygon<P>(crs); Polygon<P>[] polygons = new Polygon[tokens.length]; int idx = 0; for (PolygonToken t : tokens) { polygons[idx++] = t.toGeometry(crs); } return new MultiPolygon<P>(polygons); }
@SuppressWarnings("unchecked") @SafeVarargs public static <P extends Position> MultiPolygon<P> multipolygon(Polygon<P> polygon, Polygon<P>... polygons) { return new MultiPolygon<P>(combine(Polygon.class, polygon, polygons)); }
private MultiPolygon decodeMultiPolygon(int shapeIdx) { List<Polygon> polygons = Lists.newArrayList(); for (int i = shapeIdx; i < shapes.length; i++) { if (shapes[i].parentOffset == shapeIdx) { polygons.add(decodePolygon(i)); } } return new MultiPolygon(polygons.toArray(new Polygon[0])); }
@Override @SuppressWarnings("unchecked") MultiPolygon<P> toGeometry(CoordinateReferenceSystem<P> crs) { Polygon<P>[] parts = new Polygon[tokens.length]; for (int i = 0; i < tokens.length; i++) { parts[i] = tokens[i].toGeometry(crs); } return new MultiPolygon<P>(parts); }
private MultiPolygon decodeMultiPolygon(int shapeIdx) { List<Polygon> polygons = Lists.newArrayList(); for (int i = shapeIdx; i < shapes.length; i++) { if (shapes[i].parentOffset == shapeIdx) { polygons.add(decodePolygon(i)); } } return new MultiPolygon(polygons.toArray(new Polygon[0])); }
private <P extends Position> MultiPolygon<P> decodeMultiPolygon(ByteBuffer byteBuffer, CoordinateReferenceSystem<P> crs) { int numGeometries = byteBuffer.getInt(); if (numGeometries == 0) { return new MultiPolygon<P>(crs); } List<Polygon<P>> geometries = new ArrayList<Polygon<P>>(numGeometries); for (int i = 0; i < numGeometries; i++) { geometries.add((Polygon<P>) decodeGeometry(byteBuffer, crs)); } return mkMultiPolygon(geometries); }
public static <Q extends Position> Geometry<Q> mkGeometry(Class<? extends Complex> geometryClass, CoordinateReferenceSystem<Q> crs) { if (Polygon.class.isAssignableFrom(geometryClass)) { return new Polygon<Q>(crs); } if (MultiLineString.class.isAssignableFrom(geometryClass)) { return new MultiLineString<Q>(crs); } if (MultiPoint.class.isAssignableFrom(geometryClass)) { return new MultiPoint<Q>(crs); } if (MultiPolygon.class.isAssignableFrom(geometryClass)) { return new MultiPolygon<Q>(crs); } if (GeometryCollection.class.isAssignableFrom(geometryClass)) { return new GeometryCollection<Q, Geometry<Q>>(crs); } throw new IllegalStateException("Unknown Geometry class"); }