Tile(TileRequest req) { GridEnvelope2D gridEnv = new GridEnvelope2D(0, 0, req.width, req.height); this.gg = new GridGeometry2D(gridEnv, (org.opengis.geometry.Envelope)(req.bbox)); // TODO: check that gg intersects graph area LOG.debug("preparing tile for {}", gg.getEnvelope2D()); // Envelope2D worldEnv = gg.getEnvelope2D(); this.width = gridEnv.width; this.height = gridEnv.height; }
public GridCoverage2D getGridCoverage2D(BufferedImage image) { GridCoverage2D gridCoverage = new GridCoverageFactory() .create("isochrone", image, gg.getEnvelope2D()); return gridCoverage; }
/** * Returns the two-dimensional bounding box for the coverage domain in coordinate reference * system coordinates. If the coverage envelope has more than two dimensions, only the * dimensions used in the underlying rendered image are returned. * * @return The two-dimensional bounding box. */ public Envelope2D getEnvelope2D() { return gridGeometry.getEnvelope2D(); }
@Override public Point2D mapDestPoint(Point2D destPt, int sourceIndex) { if (destPt == null) { throw new IllegalArgumentException("Bad dest pt"); // JaiI18N.getString("Generic0")); } else if (sourceIndex < 0 || sourceIndex >= getNumSources()) { throw new IndexOutOfBoundsException("Bad src"); // JaiI18N.getString("Generic1")); } double[] coords = new double[] {destPt.getX(), destPt.getY()}; try { mapDestPoint(coords); } catch (TransformException e) { LOGGER.log(Level.WARNING, "Error transforming coords", e); return null; } Point2D ret = ((Point2D) destPt.clone()); ret.setLocation(coords[0], coords[1]); if (dst.getEnvelope2D().contains(ret)) return ret; else return null; }
if (Math.abs(trPoint.getX() - getEnvelope2D().getMaxX()) <= TOL) { trPoint.setLocation(trPoint.getX() - TOL, trPoint.getY()); if (Math.abs(trPoint.getY() - getEnvelope2D().getMinY()) <= TOL) { trPoint.setLocation(trPoint.getX(), trPoint.getY() + TOL); if (Math.abs(trPoint.getX() - getEnvelope2D().getMinX()) <= TOL) { trPoint.setLocation(trPoint.getX() + TOL, trPoint.getY()); if (Math.abs(trPoint.getY() - getEnvelope2D().getMaxY()) <= TOL) { trPoint.setLocation(trPoint.getX(), trPoint.getY() - TOL);
public void setRequestedGridGeometry(GridGeometry2D gridGeometry) { Utilities.ensureNonNull("girdGeometry", gridGeometry); requestedBBox = new ReferencedEnvelope((Envelope) gridGeometry.getEnvelope2D()); requestedRasterArea = gridGeometry.getGridRange2D().getBounds(); requestedGridToWorld = (AffineTransform) gridGeometry.getGridToCRS2D(); }
public void setRequestedGridGeometry(GridGeometry2D gridGeometry) { Utilities.ensureNonNull("girdGeometry", gridGeometry); requestedBBox = new ReferencedEnvelope((Envelope) gridGeometry.getEnvelope2D()); requestedRasterArea = gridGeometry.getGridRange2D().getBounds(); requestedGridGeometry = gridGeometry; requestedGridToWorld = (AffineTransform) gridGeometry.getGridToCRS2D(); }
Envelope2D env = grid.getEnvelope2D(); GridEnvelope2D gridEnv = grid.getGridRange2D(); Envelope2D envI = gridI.getEnvelope2D(); GridEnvelope2D gridEnvI = gridI.getGridRange2D(); double resValue = envI.width / gridEnvI.width;
Envelope2D env = grid.getEnvelope2D(); GridEnvelope2D gridEnv = grid.getGridRange2D(); Envelope2D envI = gridI.getEnvelope2D(); GridEnvelope2D gridEnvI = gridI.getGridRange2D(); double resValue = envI.width / gridEnvI.width;
@Override protected GridCoverage2D readCoverage( GridCoverage2DReader reader, Object readParams, GridGeometry2D readGG) throws IOException { Interpolation interpolation = getRenderingInterpolation(layer); GridCoverageReaderHelper helper; try { helper = new GridCoverageReaderHelper( reader, readGG.getGridRange2D(), ReferencedEnvelope.reference( readGG.getEnvelope2D()), interpolation); return helper.readCoverage((GeneralParameterValue[]) readParams); } catch (InvalidGridGeometryException | FactoryException e) { throw new IOException("Failure reading the coverage", e); } } };
private GridGeometry2D applyReadGutter(GridGeometry2D gg) { MathTransform gridToCRS = gg.getGridToCRS(); GridEnvelope2D range = new GridEnvelope2D(gg.getGridRange2D()); applyReadGutter(range); CoordinateReferenceSystem crs = gg.getEnvelope2D().getCoordinateReferenceSystem(); GridGeometry2D result = new GridGeometry2D(range, PixelInCell.CELL_CORNER, gridToCRS, crs, null); return result; }
if (name.equals(AbstractGridFormat.READ_GRIDGEOMETRY2D.getName().toString())) { final GridGeometry2D gg = (GridGeometry2D) param.getValue(); readEnvelope = new GeneralEnvelope((Envelope) gg.getEnvelope2D()); requestedDim = gg.getGridRange2D().getBounds(); continue;
if (name.equals(AbstractGridFormat.READ_GRIDGEOMETRY2D.getName().toString())) { final GridGeometry2D gg = (GridGeometry2D) param.getValue(); requestedEnvelope = new GeneralEnvelope((Envelope) gg.getEnvelope2D()); dim = gg.getGridRange2D().getBounds(); continue;
public ReadResolutionCalculator( GridGeometry2D requestedGridGeometry, CoordinateReferenceSystem nativeCrs, double[] fullResolution) throws FactoryException { Utilities.ensureNonNull("gridGeometry", requestedGridGeometry); this.requestedBBox = new ReferencedEnvelope((Envelope) requestedGridGeometry.getEnvelope2D()); this.requestedRasterArea = requestedGridGeometry.getGridRange2D().getBounds(); this.requestedGridToWorld = (AffineTransform) requestedGridGeometry.getGridToCRS2D(); this.fullResolution = fullResolution; // the reader might not know (e.g., wms cascading reader) in this case we // pick the classic computation results, it's better than nothing if (fullResolution == null) { this.fullResolution = computeClassicResolution(); isFullResolutionInRequestedCRS = true; } CoordinateReferenceSystem requestedCRS = requestedGridGeometry.getCoordinateReferenceSystem(); if (!CRS.equalsIgnoreMetadata(nativeCrs, requestedCRS)) { this.destinationToSourceTransform = CRS.findMathTransform(requestedCRS, nativeCrs); } }
/** * This method creates a new {@link GridGeometry2D} object based on that of the {@link * GridCoverage2D} defined by the index. * * @param sources * @param index * @return */ private static GridGeometry2D extractFinalGridGeometry( GridCoverage2D[] sources, int index) { // Select the GridGeometry of the first coverage GridGeometry2D gg = sources[index].getGridGeometry(); MathTransform g2w = gg.getGridToCRS2D(PixelOrientation.UPPER_LEFT); // Initial Bounding box Envelope2D bbox = gg.getEnvelope2D(); // Number of the sources to use int numSources = sources.length; // Cycle on all the GridCoverages in order to create the final Bounding box for (int i = 0; i < numSources; i++) { bbox.include(sources[i].getEnvelope2D()); } // Creation of a final GridGeometry containing the final Bounding Box GridGeometry2D finalGG = new GridGeometry2D( PixelInCell.CELL_CORNER, g2w, bbox, GeoTools.getDefaultHints()); return finalGG; } }
double step = ((scaleX + scaleY) / 2.) / 10.; Envelope2D envelope = reduced.getEnvelope2D(); result = new GeneralEnvelope(envelope.getCoordinateReferenceSystem()); result.setEnvelope(
/** * Returns a two-dimensional envelope for the given coverage. This method performs a <cite>best * effort</cite>; the returned envelope is not garanteed to be the most appropriate one. * * @param coverage The coverage for which to obtains a two-dimensional envelope. * @return The two-dimensional envelope. * @throws MismatchedDimensionException if the envelope can't be reduced to two dimensions. */ public static Envelope2D getEnvelope2D(final Coverage coverage) throws MismatchedDimensionException { if (coverage instanceof GridCoverage2D) { return ((GridCoverage2D) coverage).getEnvelope2D(); } if (coverage instanceof GridCoverage) { final GridGeometry2D geometry = GridGeometry2D.wrap(((GridCoverage) coverage).getGridGeometry()); if (geometry.isDefined(GridGeometry2D.ENVELOPE_BITMASK)) { return geometry.getEnvelope2D(); } else { return geometry.reduce(coverage.getEnvelope()); } } // Following may thrown MismatchedDimensionException. return new Envelope2D(coverage.getEnvelope()); }
static GridCoverage2D displace( GridCoverage2D coverage, double tx, double ty, GridCoverageFactory gridCoverageFactory) { // let's compute the new grid geometry GridGeometry2D originalGG = coverage.getGridGeometry(); GridEnvelope gridRange = originalGG.getGridRange(); Envelope2D envelope = originalGG.getEnvelope2D(); double minx = envelope.getMinX() + tx; double miny = envelope.getMinY() + ty; double maxx = envelope.getMaxX() + tx; double maxy = envelope.getMaxY() + ty; ReferencedEnvelope translatedEnvelope = new ReferencedEnvelope( minx, maxx, miny, maxy, envelope.getCoordinateReferenceSystem()); GridGeometry2D translatedGG = new GridGeometry2D(gridRange, translatedEnvelope); GridCoverage2D translatedCoverage = gridCoverageFactory.create( coverage.getName(), coverage.getRenderedImage(), translatedGG, coverage.getSampleDimensions(), new GridCoverage2D[] {coverage}, coverage.getProperties()); return translatedCoverage; }
if (name.equals(AbstractGridFormat.READ_GRIDGEOMETRY2D.getName().toString())) { final GridGeometry2D gg = (GridGeometry2D) param.getValue(); requestedEnvelope = new GeneralEnvelope((Envelope) gg.getEnvelope2D()); dim = gg.getGridRange2D().getBounds(); continue;
if (name.equals(AbstractGridFormat.READ_GRIDGEOMETRY2D.getName().toString())) { final GridGeometry2D gg = (GridGeometry2D) param.getValue(); requestedEnvelope = new GeneralEnvelope((Envelope) gg.getEnvelope2D()); dim = gg.getGridRange2D().getBounds(); continue;