/** * Get the coverage data values within the bounding box * * @param requestBoundingBox * request bounding box * @return coverage data results */ public CoverageDataResults getValues(BoundingBox requestBoundingBox) { CoverageDataRequest request = new CoverageDataRequest( requestBoundingBox); CoverageDataResults values = getValues(request); return values; }
BoundingBox requestProjectedBoundingBox = request.getBoundingBox(); if (!sameProjection) { transformRequestToCoverage = requestProjection .transform(transformRequestToCoverage); request.setProjectedBoundingBox(requestProjectedBoundingBox); if (values != null && !sameProjection && !request.isPoint()) { values = reprojectCoverageData(values, values[0].length, values.length, request.getBoundingBox(), transformRequestToCoverage, requestProjectedBoundingBox);
BoundingBox overlap = request.overlap(tileBoundingBox); if (request.getProjectedBoundingBox().equals(overlap)) { if (request.isPoint()) { dest = TileBoundingBoxAndroidUtils.getFloatRectangle( tileWidth, tileHeight, request.getProjectedBoundingBox(), overlap);
/** * Get the tile matrix for the zoom level as defined by the area of the * request * * @param request coverage data request * @return tile matrix or null */ private TileMatrix getTileMatrix(CoverageDataRequest request) { TileMatrix tileMatrix = null; // Check if the request overlaps coverage data bounding box if (request.overlap(coverageBoundingBox) != null) { // Get the tile distance BoundingBox projectedBoundingBox = request .getProjectedBoundingBox(); double distanceWidth = projectedBoundingBox.getMaxLongitude() - projectedBoundingBox.getMinLongitude(); double distanceHeight = projectedBoundingBox.getMaxLatitude() - projectedBoundingBox.getMinLatitude(); // Get the zoom level to request based upon the tile size Long zoomLevel = tileDao.getClosestZoomLevel(distanceWidth, distanceHeight); // If there is a matching zoom level if (zoomLevel != null) { tileMatrix = tileDao.getTileMatrix(zoomLevel); } } return tileMatrix; }
BoundingBox overlap = request.overlap(tileBoundingBox);
BoundingBox requestProjectedBoundingBox = request.getBoundingBox(); if (!sameProjection) { transformRequestToCoverage = requestProjection .transform(transformRequestToCoverage); request.setProjectedBoundingBox(requestProjectedBoundingBox); if (values != null && !sameProjection && !request.isPoint()) { values = reprojectCoverageData(values, values[0].length, values.length, request.getBoundingBox(), transformRequestToCoverage, requestProjectedBoundingBox);
BoundingBox overlap = request.overlap(tileBoundingBox); if (request.getProjectedBoundingBox().equals(overlap)) { if (request.isPoint()) { dest = TileBoundingBoxJavaUtils.getFloatRectangle( tileWidth, tileHeight, request.getProjectedBoundingBox(), overlap);
/** * Get the tile matrix for the zoom level as defined by the area of the * request * * @param request * coverage data request * @return tile matrix or null */ private TileMatrix getTileMatrix(CoverageDataRequest request) { TileMatrix tileMatrix = null; // Check if the request overlaps coverage data bounding box if (request.overlap(coverageBoundingBox) != null) { // Get the tile distance BoundingBox projectedBoundingBox = request .getProjectedBoundingBox(); double distanceWidth = projectedBoundingBox.getMaxLongitude() - projectedBoundingBox.getMinLongitude(); double distanceHeight = projectedBoundingBox.getMaxLatitude() - projectedBoundingBox.getMinLatitude(); // Get the zoom level to request based upon the tile size Long zoomLevel = tileDao.getClosestZoomLevel(distanceWidth, distanceHeight); // If there is a matching zoom level if (zoomLevel != null) { tileMatrix = tileDao.getTileMatrix(zoomLevel); } } return tileMatrix; }
BoundingBox overlap = request.overlap(tileBoundingBox);
BoundingBox requestProjectedBoundingBox = request.getBoundingBox(); if (!sameProjection) { transformRequestToCoverage = requestProjection .transform(transformRequestToCoverage); request.setProjectedBoundingBox(requestProjectedBoundingBox); if (values != null && !sameProjection && !request.isPoint()) { values = reprojectCoverageData(values, requestedCoverageDataWidth, requestedCoverageDataHeight, request.getBoundingBox(), transformRequestToCoverage, requestProjectedBoundingBox);
/** * Get the unbounded coverage data values within the bounding box. Unbounded * results retrieves and returns each coverage data pixel. The results size * equals the width and height of all matching pixels. * * @param requestBoundingBox * request bounding box * @return coverage data results */ public CoverageDataResults getValuesUnbounded(BoundingBox requestBoundingBox) { CoverageDataRequest request = new CoverageDataRequest( requestBoundingBox); return getValuesUnbounded(request); }
BoundingBox requestProjectedBoundingBox = request.getBoundingBox(); if (!sameProjection) { transformRequestToCoverage = requestProjection .transform(transformRequestToCoverage); request.setProjectedBoundingBox(requestProjectedBoundingBox); if (values != null && !sameProjection && !request.isPoint()) { values = reprojectCoverageData(values, requestedCoverageDataWidth, requestedCoverageDataHeight, request.getBoundingBox(), transformRequestToCoverage, requestProjectedBoundingBox);
/** * Get the coverage data values within the bounding box with the requested * width and height result size * * @param requestBoundingBox * request bounding box * @param width * coverage data request width * @param height * coverage data request height * @return coverage data results */ public CoverageDataResults getValues(BoundingBox requestBoundingBox, Integer width, Integer height) { CoverageDataRequest request = new CoverageDataRequest( requestBoundingBox); CoverageDataResults values = getValues(request, width, height); return values; }
/** * Get the coverage data value at the coordinate * * @param latitude * latitude * @param longitude * longitude * @return coverage data value */ public Double getValue(double latitude, double longitude) { CoverageDataRequest request = new CoverageDataRequest(latitude, longitude); CoverageDataResults values = getValues(request, 1, 1); Double value = null; if (values != null) { value = values.getValues()[0][0]; } return value; }