Package org.geotools.coverage.io.impl

Examples of org.geotools.coverage.io.impl.DefaultCoverageResponseImpl


   */
  public CoverageResponse read(final CoverageReadRequest request,
      ProgressListener listener) throws IOException {
    ensureNotDisposed();

    final DefaultCoverageResponseImpl response = new DefaultCoverageResponseImpl();
    response.setRequest(request);

    if (listener == null)
      listener = new NullProgressListener();
    listener.started();
    try {
      access.read(new GeoTiffAccess.Read<CoverageResponse>() {
        public CoverageResponse run(GeoTiffReader reader,
            GeoTiffAccess access) throws IOException {

          // get the request elements
          final BoundingBox bbox = request.getGeographicArea();
          final Rectangle rasterArea = request.getRasterArea();
          final MathTransform2D g2w = request
              .getGridToWorldTransform();

          final GridCoverage2D coverage;
          if (g2w != null || rasterArea != null || g2w != null) {
            final ParameterValue<GridGeometry2D> readParameter = AbstractGridFormat.READ_GRIDGEOMETRY2D
                .createValue();
            if (g2w == null) {
              if (rasterArea == null) {
                Info info = getInfo(null );
                readParameter.setValue(new GridGeometry2D(
                    info.getGeometry().getGridRange2D(),
                    new ReferencedEnvelope(bbox)));
              } else {
                readParameter.setValue(new GridGeometry2D(
                    new GridEnvelope2D(rasterArea),
                    new ReferencedEnvelope(bbox)));
              }
            } else {
              readParameter.setValue(new GridGeometry2D(
                  new GridEnvelope2D(rasterArea),
                  PixelInCell.CELL_CENTER, g2w, bbox
                      .getCoordinateReferenceSystem(),
                  null));
            }
            coverage = (GridCoverage2D) reader
                .read(new GeneralParameterValue[] { readParameter });
          } else {
            coverage = (GridCoverage2D) reader.read(null);
          }
          response.addResult(coverage);
          response.setStatus(Status.SUCCESS);

          return response;
        }
      });
    } catch (Throwable e) {
      response.addException(new GeoTiffException(null, "IO error", e));
    } finally {
      listener.complete();
    }
    return response;
  }
View Full Code Here


  public CoverageResponse update(CoverageUpdateRequest writeRequest,
      ProgressListener progress) {
    ensureNotDisposed();
    access.globalLock.writeLock().lock();

    final DefaultCoverageResponseImpl response = new DefaultCoverageResponseImpl();
    response.setRequest(writeRequest);
    try {
      // reader
      final GeoTiffWriter writer = new GeoTiffWriter(this.access.input);

      // get the data
      final GridCoverage2D coverage = (GridCoverage2D) writeRequest.getData().iterator().next();
      writer.write(coverage, null);
      writer.dispose();
      response.addResult(coverage);
      response.setStatus(Status.SUCCESS);

      // update the access
      Info info = getInfo(null);
      info.setExtent( (GeneralEnvelope) coverage.getGridGeometry().getEnvelope() );
      info.setGeometry( coverage.getGridGeometry() );
    } catch (Throwable e) {
      response.addException(new GeoTiffException(null, "IO error", e));
    } finally {
      this.access.globalLock.writeLock().unlock();
    }

    return response;
View Full Code Here

TOP

Related Classes of org.geotools.coverage.io.impl.DefaultCoverageResponseImpl

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.