@Override public Object parse(String value) throws Exception { GridType type = null; for (GridType currType : GridType.values()) { if (currType.getXmlConstant().equalsIgnoreCase(value)) { type = currType; break; } } if (type == null) throw new WcsException("Could not understand grid type '" + value + "'", InvalidParameterValue, "GridType"); if (type == GridType.GT2dGridIn3dCrs) throw new WcsException("GeoServer does not support type " + type.name(), InvalidParameterValue, "GridType"); return type.getXmlConstant(); } }
if (gridTypeValue != null) { type = null; for (GridType gt : GridType.values()) { if (gt.getXmlConstant().equalsIgnoreCase(gridTypeValue)) type = gt; InvalidParameterValue, "GridType"); gridCRS.setGridType(type.getXmlConstant()); Double[] origin = new Double[type.getOriginArrayLength()]; Arrays.fill(origin, 0.0); gridCRS.setGridOrigin(origin); if (gridOrigin.length != type.getOriginArrayLength()) throw new WcsException("Grid origin size (" + gridOrigin.length + ") inconsistent with grid type " + type.getXmlConstant() + " that requires (" + type.getOriginArrayLength() + ")", WcsExceptionCode.InvalidParameterValue, "GridOrigin"); gridCRS.setGridOrigin(gridOrigin); if (gridOffsets != null) { if (type.getOffsetArrayLength() != gridOffsets.length) throw new WcsException("Invalid offsets lenght, grid type " + type.getXmlConstant() + " requires " + type.getOffsetArrayLength(), InvalidParameterValue, "GridOffsets"); } else {
if (gridCRS != null) { if (gridToCRS instanceof IdentityTransform) { if (gridCRS.getGridType().equals(GridType.GT2dSimpleGrid.getXmlConstant()) || gridCRS.getGridType() .equals(GridType.GT2dGridIn2dCrs.getXmlConstant())) offsets = new Double[] {1.0, -1.0}; else offsets = new Double[] {1.0, 0.0, 0.0, 0.0, -1.0, 0.0}; } else { AffineTransform2D affine = (AffineTransform2D) gridToCRS; if (gridCRS.getGridType().equals(GridType.GT2dSimpleGrid.getXmlConstant()) || gridCRS.getGridType() .equals(GridType.GT2dGridIn2dCrs.getXmlConstant())) offsets = new Double[] {affine.getScaleX(), affine.getScaleY()}; else || gridCRS.getGridType().equals(GridType.GT2dSimpleGrid.getXmlConstant()) || gridCRS.getGridType().equals(GridType.GT2dGridIn2dCrs.getXmlConstant())) { offsets = new Double[] {scaleX, scaleY}; } else {
if (gridTypeValue != null) { type = null; for (GridType gt : GridType.values()) { if (gt.getXmlConstant().equalsIgnoreCase(gridTypeValue)) type = gt; gridCRS.setGridType(type.getXmlConstant()); Double[] origin = new Double[type.getOriginArrayLength()]; Arrays.fill(origin, 0.0); gridCRS.setGridOrigin(origin); if (gridOrigin.length != type.getOriginArrayLength()) throw new WcsException( "Grid origin size (" + gridOrigin.length + ") inconsistent with grid type " + type.getXmlConstant() + " that requires (" + type.getOriginArrayLength() + ")", WcsExceptionCode.InvalidParameterValue, if (type.getOffsetArrayLength() != gridOffsets.length) throw new WcsException( "Invalid offsets lenght, grid type " + type.getXmlConstant() + " requires " + type.getOffsetArrayLength(), InvalidParameterValue,
protected void handleGridCRS(CoverageInfo ci) throws Exception { start("wcs:GridCRS"); element("wcs:GridBaseCRS", urnIdentifier(ci.getCRS())); element("wcs:GridType", GridType.GT2dGridIn2dCrs.getXmlConstant()); // TODO: go back to using the metadata once they can be trusted final LinearTransform tx = (LinearTransform) ci.getGrid().getGridToCRS(); final Matrix matrix = tx.getMatrix(); // origin StringBuffer origins = new StringBuffer(); for (int i = 0; i < matrix.getNumRow() - 1; i++) { origins.append(matrix.getElement(i, matrix.getNumCol() - 1)); if (i < matrix.getNumRow() - 2) origins.append(" "); } element("wcs:GridOrigin", origins.toString()); // offsets StringBuffer offsets = new StringBuffer(); for (int i = 0; i < matrix.getNumRow() - 1; i++) { for (int j = 0; j < matrix.getNumCol() - 1; j++) { offsets.append(matrix.getElement(i, j)); if (j < matrix.getNumCol() - 2) offsets.append(" "); } if (i < matrix.getNumRow() - 2) offsets.append(" "); } element("wcs:GridOffsets", offsets.toString()); element("wcs:GridCS", "urn:ogc:def:cs:OGC:0.0:Grid2dSquareCS"); end("wcs:GridCRS"); }
@Override public Object parse(String value) throws Exception { GridType type = null; for (GridType currType : GridType.values()) { if (currType.getXmlConstant().equalsIgnoreCase(value)) { type = currType; break; } } if (type == null) throw new WcsException( "Could not understand grid type '" + value + "'", InvalidParameterValue, "GridType"); if (type == GridType.GT2dGridIn3dCrs) throw new WcsException( "GeoServer does not support type " + type.name(), InvalidParameterValue, "GridType"); return type.getXmlConstant(); } }
private void handleGridCRS(CoverageInfo ci) throws Exception { start("wcs:GridCRS"); element("wcs:GridBaseCRS", urnIdentifier(ci.getCrs())); element("wcs:GridType", GridType.GT2dGridIn2dCrs.getXmlConstant()); // TODO: go back to using the metadata once they can be trusted final LinearTransform tx = (LinearTransform) ci.getGrid().getGridToCRS(); final Matrix matrix = tx.getMatrix(); // origin StringBuffer origins = new StringBuffer(); for (int i = 0; i < matrix.getNumRow() - 1; i++) { origins.append(matrix.getElement(i, matrix.getNumCol() - 1)); if (i < matrix.getNumRow() - 2) origins.append(" "); } element("wcs:GridOrigin", origins.toString()); // offsets StringBuffer offsets = new StringBuffer(); for (int i = 0; i < matrix.getNumRow() - 1; i++) { for (int j = 0; j < matrix.getNumCol() - 1; j++) { offsets.append(matrix.getElement(i, j)); if (j < matrix.getNumCol() - 2) offsets.append(" "); } if (i < matrix.getNumRow() - 2) offsets.append(" "); } element("wcs:GridOffsets", offsets.toString()); element("wcs:GridCS", "urn:ogc:def:cs:OGC:0.0:Grid2dSquareCS"); end("wcs:GridCRS"); }
raw.put("BoundingBox", "-45,146,-42,147"); raw.put("gridType", GridType.GT2dGridIn2dCrs.getXmlConstant()); GetCoverageType getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridType.GT2dGridIn2dCrs.getXmlConstant(), getCoverage.getOutput().getGridCRS().getGridType()); raw.put("gridType", GridType.GT2dSimpleGrid.getXmlConstant()); getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridType.GT2dSimpleGrid.getXmlConstant(), getCoverage.getOutput().getGridCRS().getGridType()); raw.put("gridType", GridType.GT2dSimpleGrid.getXmlConstant().toUpperCase()); getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridType.GT2dSimpleGrid.getXmlConstant(), getCoverage.getOutput().getGridCRS().getGridType()); raw.put("gridType", GridType.GT2dGridIn3dCrs.getXmlConstant()); try { reader.read(reader.createRequest(), parseKvp(raw), raw);
if (gridCRS.getGridType().equals(GridType.GT2dSimpleGrid.getXmlConstant())) { tx = new AffineTransform(offsets[0], 0, 0, offsets[1], origin[0], origin[1]); } else {
if (gridCRS.getGridType().equals(GridType.GT2dSimpleGrid.getXmlConstant())) { tx = new AffineTransform(offsets[0], 0, 0, offsets[1], origin[0], origin[1]); } else if (gridCRS.getGridType() .equals(GridType.GT2dGridIn2dCrs.getXmlConstant())) { tx = new AffineTransform(
raw.put("GridType", GridType.GT2dSimpleGrid.getXmlConstant()); GetCoverageType getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw);