private void encodeDatasetBounds(CoverageInfo ci, GridCoverage2DReader reader)
throws IOException {
final CoordinateReferenceSystem crs = ci.getCRS();
GeneralEnvelope envelope = reader.getOriginalEnvelope();
List<String> axesNames = envelopeAxisMapper.getAxesNames(envelope, true);
Integer EPSGCode = null;
try {
EPSGCode = CRS.lookupEpsgCode(crs, false);
} catch (FactoryException e) {
throw new IllegalStateException(
"Unable to lookup epsg code for this CRS:" + crs, e);
}
if (EPSGCode == null) {
throw new IllegalStateException("Unable to lookup epsg code for this CRS:" + crs);
}
final String srsName = GetCoverage.SRS_STARTER + EPSGCode;
final boolean axisSwap = CRS.getAxisOrder(crs).equals(AxisOrder.EAST_NORTH);
final StringBuilder builder = new StringBuilder();
for (String axisName : axesNames) {
builder.append(axisName).append(" ");
}
String axesLabel = builder.substring(0, builder.length() - 1);
dcTranslator.handleBoundedBy(envelope, axisSwap, srsName, axesLabel, null);
}