Package org.geotools.referencing.operation.builder

Examples of org.geotools.referencing.operation.builder.GridToEnvelopeMapper


        //
        if (worldToScreen != null && XAffineTransform.getRotation(worldToScreen) != 0.0) {
            finalWorldToGrid = new AffineTransform(worldToScreen);
            finalGridToWorld = finalWorldToGrid.createInverse();
        } else {
            final GridToEnvelopeMapper gridToEnvelopeMapper = new GridToEnvelopeMapper();
            gridToEnvelopeMapper.setPixelAnchor(PixelInCell.CELL_CORNER);
            gridToEnvelopeMapper.setGridRange(new GridEnvelope2D(destinationSize));
            gridToEnvelopeMapper.setEnvelope(destinationEnvelope);
            finalGridToWorld = new AffineTransform(gridToEnvelopeMapper.createAffineTransform());
            finalWorldToGrid = finalGridToWorld.createInverse();
        }

        //
        // HINTS Management
View Full Code Here


                    // the effect is a degradation of quality, but we take that into account
                    // emprically
                    //
                    requestedResolution = null;

                    final GridToEnvelopeMapper geMapper= new GridToEnvelopeMapper(new GridEnvelope2D(destinationRasterArea),cropBBox);
                    final AffineTransform tempTransform = geMapper.createAffineTransform();
                   
                    requestedRasterScaleFactors = new double[2];
                    requestedResolution = new double[] {
                            XAffineTransform.getScaleX0(tempTransform),
                            XAffineTransform.getScaleY0(tempTransform)
View Full Code Here

        // create a relationship between the real region in the world and the
        // jai space. N.B. the
        // image dimension is only the real dimension which can be extract to a
        // file.
        GridToEnvelopeMapper g2eMapper = new GridToEnvelopeMapper();
        g2eMapper.setEnvelope(requestedRegionEnvelope);
        g2eMapper.setGridRange(new GridEnvelope2D(0, 0, requestedCols, requestedRows));

        g2eMapper.setPixelAnchor(cellAnchor);
        MathTransform gridToEnvelopeTransform = g2eMapper.createTransform();
        GridCoverageFactory factory = CoverageFactoryFinder.getGridCoverageFactory(GeoTools.getDefaultHints());

        GridCoverage2D coverage2D = factory.create(name, finalImage, crs, gridToEnvelopeTransform,
                new GridSampleDimension[]{band}, null, null);
        return coverage2D;
View Full Code Here

            throw new IllegalArgumentException("The specified coverageName " + coverageName
                    + "is not supported");
        }
        synchronized (this) {
            if (raster2Model == null) {
                final GridToEnvelopeMapper geMapper = new GridToEnvelopeMapper(
                        getOriginalGridRange(coverageName), getOriginalEnvelope(coverageName));
                geMapper.setPixelAnchor(PixelInCell.CELL_CENTER);
                raster2Model = geMapper.createTransform();
            }
        }

        // we do not have to change the pixel datum
        if (pixInCell == PixelInCell.CELL_CENTER)
View Full Code Here

     * Classic way of computing the requested resolution
     *
     * @return
     */
    private double[] computeClassicResolution() {
        final GridToEnvelopeMapper geMapper = new GridToEnvelopeMapper(new GridEnvelope2D(
                requestedRasterArea), requestedBBox);
        final AffineTransform tempTransform = geMapper.createAffineTransform();

        return new double[] { XAffineTransform.getScaleX0(tempTransform),
                XAffineTransform.getScaleY0(tempTransform) };
    }
View Full Code Here

     
      // build the g2W for this tile, in principle we should get it
      // somehow from the tile itself or from the index, but at the moment
      // we do not have such info, hence we assume that it is a simple
      // scale and translate
      this.geMapper= new GridToEnvelopeMapper(new GridEnvelope2D(originalDimension), granuleBBOX);
      geMapper.setPixelAnchor(PixelInCell.CELL_CENTER);//this is the default behavior but it is nice to write it down anyway
      this.baseGridToWorld = geMapper.createAffineTransform();
     
      // add the base level
      this.granuleLevels.put(Integer.valueOf(0), new GranuleOverviewLevelDescriptor(1, 1, originalDimension.width, originalDimension.height));
View Full Code Here

    // //
    //
    // Get the transform
    //
    // //
            final GridToEnvelopeMapper m = (GridToEnvelopeMapper) gridToEnvelopeMappers.get();
    try {
            m.setGridRange(new GridEnvelope2D(paintArea));
            m.setEnvelope(genvelope);
            return m.createAffineTransform().createInverse();
    } catch (MismatchedDimensionException e) {
      LOGGER.log(Level.WARNING, e.getLocalizedMessage(), e);
      return null;
    } catch (NoninvertibleTransformException e) {
      LOGGER.log(Level.WARNING, e.getLocalizedMessage(), e);
View Full Code Here

    // with this method I can build a world to grid transform
    // without adding half of a pixel translations. The cost
        // is a hashtable lookup. The benefit is reusing the last
        // transform (instead of creating a new one) if the grid
        // and envelope are the same one than during last invocation.
        final GridToEnvelopeMapper m = (GridToEnvelopeMapper) gridToEnvelopeMappers.get();
        m.setGridRange(new GridEnvelope2D(paintArea));
        m.setEnvelope(newEnvelope);
        return (AffineTransform) (m.createTransform().inverse());


  }
View Full Code Here

     
      // build the g2W for this tile, in principle we should get it
      // somehow from the tile itself or from the index, but at the moment
      // we do not have such info, hence we assume that it is a simple
      // scale and translate
      final GridToEnvelopeMapper geMapper= new GridToEnvelopeMapper(
          new GridEnvelope2D(originalDimension), granuleBBOX);
      geMapper.setPixelAnchor(PixelInCell.CELL_CENTER);//this is the default behavior but it is nice to write it down anyway
      this.baseGridToWorld = geMapper.createAffineTransform();
     
      // add the base level
      this.granuleLevels.put(Integer.valueOf(0), new Level(1, 1, originalDimension.width, originalDimension.height));

    } catch (IllegalStateException e) {
View Full Code Here

          // assuming a reprojection that keeps the raster area unchanged hence
          // the effect is a degradation of quality, but we take that into account emprically
              //
          requestedResolution=null;

              final GridToEnvelopeMapper geMapper = new GridToEnvelopeMapper(new GridEnvelope2D(destinationRasterArea),cropBBox);
              final AffineTransform tempTransform = geMapper.createAffineTransform();
              requestedResolution= new double[] {
              XAffineTransform.getScaleX0(tempTransform),
              XAffineTransform.getScaleY0(tempTransform)
            };
        }
View Full Code Here

TOP

Related Classes of org.geotools.referencing.operation.builder.GridToEnvelopeMapper

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.