/** * Constructs a new map projection from the supplied parameters. * * @param parameters The parameter values in standard units. * @throws ParameterNotFoundException if a mandatory parameter is missing. */ protected EquidistantCylindrical(final ParameterValueGroup parameters) throws ParameterNotFoundException { // Fetch parameters super(parameters); final Collection<GeneralParameterDescriptor> expected = getParameterDescriptors().descriptors(); if (expected.contains(Provider.STANDARD_PARALLEL_1)) { standardParallel = abs(doubleValue(expected, Provider.STANDARD_PARALLEL_1, parameters)); ensureLatitudeInRange(Provider.STANDARD_PARALLEL_1, standardParallel, false); cosStandardParallel = cos(standardParallel); } else { // standard parallel is the equator (Plate Carree or Equirectangular) standardParallel = 0; cosStandardParallel = 1.0; } assert latitudeOfOrigin == 0 : latitudeOfOrigin; }