/** * Creates an empty {@code GeometryCollection} for a coordinate reference system * * @param crs the coordinate reference system for the created {@code GeometryCollection} * @param <P> the type of {@code Position} * @return an empty {@code GeometryCollection} with the specified coordinate reference system */ public static <P extends Position> GeometryCollection<P, Geometry<P>> mkEmptyGeometryCollection(CoordinateReferenceSystem<P> crs) { return new GeometryCollection<>(crs); }
public static <P extends Position> GeometryCollection<P, Geometry<P>> mkGeometryCollection(Geometry<P>... geometries) { return new GeometryCollection<P, Geometry<P>>(geometries); }
public static <P extends Position> GeometryCollection<P, Geometry<P>> mkGeometryCollection(List<Geometry<P>> geometries) { Geometry<P>[] geomArr = (Geometry<P>[]) new Geometry[geometries.size()]; return new GeometryCollection<P, Geometry<P>>(geometries.toArray(geomArr)); }
/** * Creates a {@code GeometryCollection} from the specified {@code Geometry}s. * @param geometry the first constituent {@code Geometry} * @param geometries the rest of the constituent {@code Geometry}s * @param <P> the {@code Position} type * @return the {@code GeometryCollection} of the specified constituent {@code Geometry}s. */ @SuppressWarnings("unchecked") @SafeVarargs public static <P extends Position> GeometryCollection<P, Geometry<P>> geometrycollection(Geometry<P> geometry, Geometry<P>... geometries) { return new GeometryCollection<P, Geometry<P>>(combine(Geometry.class, geometry, geometries)); }
private GeometryCollection decodeGeometryCollection(int shapeIdx) { List<Geometry> geometries = Lists.newArrayList(); for (int i = shapeIdx; i < shapes.length; i++) { if (shapes[i].parentOffset == shapeIdx) { geometries.add(decode(i)); } } return new GeometryCollection(geometries.toArray(new Geometry[0])); }
private GeometryCollection decodeGeometryCollection(int shapeIdx) { List<Geometry> geometries = Lists.newArrayList(); for (int i = shapeIdx; i < shapes.length; i++) { if (shapes[i].parentOffset == shapeIdx) { geometries.add(decode(i)); } } return new GeometryCollection(geometries.toArray(new Geometry[0])); }
/** * Creates a {@code GeometryCollection} from the specified {@code GeometryToken}s and {@code CoordinateReferenceSystem}. * * @param crs the {@code CoordinateReferenceSystem} for the {@code GeometryCollection} * @param tokens the {@code GeometryTokens} for the constituent {@code Geometry}s of the returned {@code GeometryCollection} * @param <P> the {@code Position} type * @return the {@code GeometryCollection} of the specified constituent {@code Geometry}s and {@code CoordinateReferenceSystem} */ @SuppressWarnings("unchecked") @SafeVarargs public static <P extends Position> GeometryCollection<P, Geometry<P>> geometrycollection(CoordinateReferenceSystem<P> crs, GeometryToken<P>... tokens) { if (tokens.length == 0) return new GeometryCollection<P, Geometry<P>>(crs); Geometry<P>[] parts = new Geometry[tokens.length]; int idx = 0; for (GeometryToken t : tokens) { parts[idx++] = t.toGeometry(crs); } return new GeometryCollection<P, Geometry<P>>(parts); }
@Override @SuppressWarnings("unchecked") GeometryCollection<P, Geometry<P>> toGeometry(CoordinateReferenceSystem<P> crs) { Geometry<P>[] parts = new Geometry[tokens.length]; for (int i = 0; i < tokens.length; i++) { parts[i] = tokens[i].toGeometry(crs); } return new GeometryCollection<P, Geometry<P>>(parts); }
@Override @SuppressWarnings("unchecked") Geometry<?> internalDecode(SDOGeometry sdoGeom) { final List<Geometry> geometries = new ArrayList<Geometry>(); for (SDOGeometry elemGeom : sdoGeom.getElementGeometries()) { Decoder decoder = Decoders.decoderFor(elemGeom); geometries.add(decoder.decode(elemGeom)); } final Geometry[] geomArray = new Geometry[geometries.size()]; return new GeometryCollection(geometries.toArray(geomArray)); } }
private <P extends Position> GeometryCollection<P, Geometry<P>> decodeGeometryCollection(ByteBuffer byteBuffer, CoordinateReferenceSystem<P> crs) { int numGeometries = byteBuffer.getInt(); if (numGeometries == 0) { return new GeometryCollection<P, Geometry<P>>(crs); } List<Geometry<P>> geometries = new ArrayList<Geometry<P>>(numGeometries); for (int i = 0; i < numGeometries; i++) { geometries.add(decodeGeometry(byteBuffer, crs)); } return mkGeometryCollection(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"); }
@SuppressWarnings("unchecked") public static <P extends Position> Geometry<P> mkGeometry(Class<? extends Complex> geometryClass, Geometry<P>... parts) { if (Polygon.class.isAssignableFrom(geometryClass)) { return new Polygon((LinearRing<P>[]) parts); } if (MultiLineString.class.isAssignableFrom(geometryClass)) { return new MultiLineString<P>((LineString<P>[]) parts); } if (MultiPoint.class.isAssignableFrom(geometryClass)) { return new MultiPoint<P>((Point<P>[]) parts); } if (MultiPolygon.class.isAssignableFrom(geometryClass)) { return new MultiPolygon<P>((Polygon<P>[]) parts); } if (GeometryCollection.class.isAssignableFrom(geometryClass)) { return new GeometryCollection<P, Geometry<P>>((Geometry<P>[]) parts); } throw new IllegalStateException("Unknown Geometry class"); }
@SuppressWarnings("unchecked") private static <P extends Position> org.geolatte.geom.GeometryCollection<P, org.geolatte.geom.Geometry<P>> from (GeometryCollection jtsGeometry, CoordinateReferenceSystem<P> crs) { if (jtsGeometry.getNumGeometries() == 0) return new org.geolatte.geom.GeometryCollection<P, org.geolatte.geom.Geometry<P>>(crs); org.geolatte.geom.Geometry<P>[] geoms = new org.geolatte.geom.Geometry[jtsGeometry.getNumGeometries()]; for (int i = 0; i < jtsGeometry.getNumGeometries(); i++) { geoms[i] = from(jtsGeometry.getGeometryN(i), crs); } return new org.geolatte.geom.GeometryCollection<P, org.geolatte.geom.Geometry<P>>(geoms); }
private static GeometryCollection convert(org.postgis.GeometryCollection geometry) { Geometry[] geometries = new Geometry[geometry.numGeoms()]; for (int i = 0; i < geometries.length; i++) { geometries[i] = convert(geometry.getSubGeometry(i)); } return new GeometryCollection(geometries); }
private static GeometryCollection convert(org.postgis.GeometryCollection geometry) { Geometry[] geometries = new Geometry[geometry.numGeoms()]; for (int i = 0; i < geometries.length; i++) { geometries[i] = convert(geometry.getSubGeometry(i)); } return new GeometryCollection(geometries); }
private static GeometryCollection convertCollection(JGeometry geometry) { JGeometry[] elements = geometry.getElements(); if (elements == null || elements.length == 0) { return GeometryCollection.createEmpty(); } Geometry[] geometries = new Geometry[elements.length]; for (int i = 0; i < elements.length; i++) { geometries[i] = convert(elements[i]); } return new GeometryCollection(geometries); }
private static GeometryCollection convertCollection(JGeometry geometry) { JGeometry[] elements = geometry.getElements(); if (elements == null || elements.length == 0) { return GeometryCollection.createEmpty(); } Geometry[] geometries = new Geometry[elements.length]; for (int i = 0; i < elements.length; i++) { geometries[i] = convert(elements[i]); } return new GeometryCollection(geometries); }
private <P extends Position> GeometryCollection<P, Geometry<P>> decodeGeometryCollection(CoordinateReferenceSystem<P> crs) { if (matchesOpenList()) { List<Geometry<P>> geometries = new ArrayList<Geometry<P>>(); while (!matchesCloseList()) { geometries.add(decodeGeometry(crs)); matchesElementSeparator(); } return mkGeometryCollection(geometries); } if (matchesEmptyToken()) { return new GeometryCollection<P, Geometry<P>>(crs); } throw new WktDecodeException(buildWrongSymbolAtPositionMsg()); }
data.add(new GeometryCollection(new Geometry[]{data.get(i)}));
return new GeometryCollection<P, Geometry<P>>(geometries);