private Geometry getFeatureEnvelopeAsGeometry( final Feature feature ) { Geometry bboxGeom = null; try { Envelope bbox = feature.getEnvelope(); if ( bbox != null ) { bboxGeom = Geometries.getAsGeometry( bbox ); } } catch ( Exception e ) { LOG.warn( "Unable to determine bbox of feature with id '" + feature.getId() + "': " + e.getMessage() ); } return bboxGeom; }
private static void collectMembersDeep( Geometry geometry, List<GeometricPrimitive> deepMembers ) { switch ( geometry.getGeometryType() ) { case COMPOSITE_GEOMETRY: { // TODO break; } case ENVELOPE: { // TODO break; } case PRIMITIVE_GEOMETRY: { deepMembers.add( (GeometricPrimitive) geometry ); } case MULTI_GEOMETRY: { MultiGeometry<?> multi = (MultiGeometry<?>) geometry; for ( Geometry member : multi ) { collectMembersDeep( member, deepMembers ); } } } }
collectMembersDeep( member, (List<GeometricPrimitive>) deepMembers ); int dim = getDimension( deepMembers );
private Polygon calculateClippingArea( final Envelope bbox, final int width ) { double resolution = bbox.getSpan0() / width; double delta = resolution * 100; double[] minCords = new double[] { bbox.getMin().get0() - delta, bbox.getMin().get1() - delta }; double[] maxCords = new double[] { bbox.getMax().get0() + delta, bbox.getMax().get1() + delta }; Point min = new DefaultPoint( null, bbox.getCoordinateSystem(), null, minCords ); Point max = new DefaultPoint( null, bbox.getCoordinateSystem(), null, maxCords ); Envelope enlargedBBox = new DefaultEnvelope( min, max ); return (Polygon) Geometries.getAsGeometry( enlargedBBox ); }
Geometry geom = null; if ( env != null ) { geom = Geometries.getAsGeometry( env );