/** Creates an object for the specified code. */ protected IdentifiedObject createObject(final String code) throws FactoryException { if (projections != null) { final String crs = (String) projections.get(code); if (crs != null) { return ((CRSAuthorityFactory) factory) .createProjectedCRS(crs) .getConversionFromBase(); } } return ((CoordinateOperationAuthorityFactory) factory).createCoordinateOperation(code); } }
} else if (crs instanceof ProjectedCRS) { ProjectedCRS projectedCRS = (ProjectedCRS) crs; Projection projection = projectedCRS.getConversionFromBase(); MathTransform transform = projection.getMathTransform(); if (transform instanceof TransverseMercator) {
/** * Returns the {@link MapProjection} driving the specified crs, or {@code null} if none could be * found. * * @param crs The coordinate reference system, or {@code null}. * @return The {@link MapProjection}, or {@code null} if none. */ public static MapProjection getMapProjection(final CoordinateReferenceSystem crs) { ProjectedCRS projectedCRS = CRS.getProjectedCRS(crs); if (projectedCRS == null) return null; Projection conversion = projectedCRS.getConversionFromBase(); MathTransform mt = conversion.getMathTransform(); return unrollProjection(mt); }
throws FactoryException { GeographicCRS base = targetCRS.getBaseCRS(); CoordinateOperation step2 = targetCRS.getConversionFromBase(); HashSet<CoordinateOperation> result = new HashSet<CoordinateOperation>(); Set<CoordinateOperation> step1Candidates = tryDB(sourceCRS, base, limit);
throws FactoryException { final GeographicCRS base = sourceCRS.getBaseCRS(); CoordinateOperation step1 = sourceCRS.getConversionFromBase(); HashSet<CoordinateOperation> result = new HashSet<CoordinateOperation>(); Set<CoordinateOperation> step2Candidates = tryDB(base, targetCRS, limit);
pcrs.getConversionFromBase().getName().getCode(), pcrs.getConversionFromBase().getParameterValues()); return new DefaultProjectedCRS( java.util.Collections.singletonMap( conversionFromBase, pcrs.getBaseCRS(), pcrs.getConversionFromBase().getMathTransform(), createProjectedCS(linearUnit));
Matrix geographicScale = null; Matrix projectedScale = null; projection = crs.getConversionFromBase(); MathTransform candidate = projection.getMathTransform(); while (candidate instanceof ConcatenatedTransform) {
@Test public void test42003() throws FactoryException { ProjectedCRS eqc = factory.createProjectedCRS("AUTO:42003,9001,0.0,0"); assertEquals("Orthographic", eqc.getConversionFromBase().getMethod().getName().getCode()); assertTrue( eqc.getConversionFromBase().getMathTransform() instanceof EquatorialOrthographic); eqc = factory.createProjectedCRS("AUTO:42003,9001,0.0,90"); assertEquals("Orthographic", eqc.getConversionFromBase().getMethod().getName().getCode()); assertTrue(eqc.getConversionFromBase().getMathTransform() instanceof PolarOrthographic); eqc = factory.createProjectedCRS("AUTO:42003,9001,0.0,45"); assertEquals("Orthographic", eqc.getConversionFromBase().getMethod().getName().getCode()); assertTrue(eqc.getConversionFromBase().getMathTransform() instanceof ObliqueOrthographic); }
final ProjectedCRS projectedCRS, final GeoTiffIIOMetadataEncoder metadata) { final Conversion conversion = projectedCRS.getConversionFromBase(); final int code = getEPSGCode(conversion); if (GeoTiffIIOMetadataEncoder.isTiffUShort(code)) {
@Test public void test97001() throws FactoryException { ProjectedCRS crs = factory.createProjectedCRS("AUTO:97001,9001,-17.0,23.0"); assertEquals("Gnomonic", crs.getConversionFromBase().getMethod().getName().getCode()); assertTrue(crs.getConversionFromBase().getMathTransform() instanceof Gnomonic); String centreLatCode = Gnomonic.Provider.LATITUDE_OF_CENTRE.getName().getCode(); double centreLat = crs.getConversionFromBase() .getParameterValues() .parameter(centreLatCode) .doubleValue(); assertEquals(23.0, centreLat, 1e-9); String centreLongCode = Gnomonic.Provider.LONGITUDE_OF_CENTRE.getName().getCode(); double centreLong = crs.getConversionFromBase() .getParameterValues() .parameter(centreLongCode) .doubleValue(); assertEquals(-17.0, centreLong, 1e-9); }
@Test public void test42004() throws FactoryException { final ProjectedCRS eqc = factory.createProjectedCRS("AUTO:42004,9001,0.0,35"); assertEquals( "Equidistant_Cylindrical", eqc.getConversionFromBase().getMethod().getName().getCode()); String stdParallel1Code = EquidistantCylindrical.Provider.STANDARD_PARALLEL_1.getName().getCode(); double stdParallel1 = eqc.getConversionFromBase() .getParameterValues() .parameter(stdParallel1Code) .doubleValue(); assertEquals(35.0, stdParallel1, 1e-9); }
@Test public void test97002() throws FactoryException { ProjectedCRS crs = factory.createProjectedCRS("AUTO:97002,9001,-17.0,23.0"); assertEquals("Stereographic", crs.getConversionFromBase().getMethod().getName().getCode()); assertTrue(crs.getConversionFromBase().getMathTransform() instanceof Stereographic); crs.getConversionFromBase() .getParameterValues() .parameter(centreLatCode) crs.getConversionFromBase() .getParameterValues() .parameter(centreLongCode) crs.getConversionFromBase() .getParameterValues() .parameter(semiMajorString) String semiMinorString = Stereographic.Provider.SEMI_MINOR.getName().getCode(); double semiMinor = crs.getConversionFromBase() .getParameterValues() .parameter(semiMinorString)
new DefiningConversion(dummyName, method, mt), DefaultCartesianCS.PROJECTED); final Conversion conversion = projCRS.getConversionFromBase(); assertSame(mt, conversion.getMathTransform()); final OperationMethod projMethod = conversion.getMethod();
assertEquals( "Popular Visualisation Pseudo Mercator", esriCrs.getConversionFromBase().getMethod().getName().getCode());
/** Check we can parse also the unit */ @Test public void test42001Units() throws FactoryException { final ProjectedCRS utm = factory.createProjectedCRS("AUTO:42001,9001,0.0,0.0"); assertNotNull("auto-utm", utm); assertSame(utm, factory.createObject("AUTO :42001, 9001,0,0")); assertSame(utm, factory.createObject("AUTO2:42001, 9001,0,0")); assertSame(utm, factory.createObject("42001, 9001,0,0")); assertNotSame(utm, factory.createObject("AUTO :42001, 9001,30,0")); assertEquals( "Transverse_Mercator", utm.getConversionFromBase().getMethod().getName().getCode()); }
public Object getValue(final GridCoverage coverage) { final ProjectedCRS crs; crs = CRS.getProjectedCRS(coverage.getCoordinateReferenceSystem()); return (crs!=null) ? crs.getConversionFromBase() : null; } };
/** UDIG requires this to work. */ @Test public void test42001() throws FactoryException { final ProjectedCRS utm = factory.createProjectedCRS("AUTO:42001,0.0,0.0"); assertNotNull("auto-utm", utm); assertSame(utm, factory.createObject("AUTO :42001 ,0,0")); assertSame(utm, factory.createObject("AUTO2:42001 ,0,0")); assertSame(utm, factory.createObject("42001 ,0,0")); assertNotSame(utm, factory.createObject("AUTO :42001 ,30,0")); assertEquals( "Transverse_Mercator", utm.getConversionFromBase().getMethod().getName().getCode()); }
final Matrix prepend = toStandard(base2D, false); final Matrix append = toStandard(sourceCRS, true); Conversion projection = sourceCRS.getConversionFromBase(); if (!prepend.isIdentity() || !append.isIdentity()) { final MathTransformFactory mtFactory = getMathTransformFactory();
/** * Returns the conversion from {@code north} to {@code south}. */ private static Matrix conversion(final ProjectedCRS north, final ProjectedCRS south) throws NoninvertibleTransformException { final MathTransform transform = MathTransforms.concatenate( north.getConversionFromBase().getMathTransform().inverse(), south.getConversionFromBase().getMathTransform()); assertInstanceOf("North to South", LinearTransform.class, transform); return ((LinearTransform) transform).getMatrix(); }
/** * Verifies the parameters of a “NTF (Paris) / Lambert zone II” projection. */ private static void validateParisFranceII(final ProjectedCRS crs, final int identifier, final boolean hasToWGS84) { assertNameAndIdentifierEqual("NTF (Paris) / Lambert zone II", identifier, crs); verifyProjectedCS(crs.getCoordinateSystem(), Units.KILOMETRE); final PrimeMeridian pm = verifyNTF(crs.getDatum(), hasToWGS84); assertEquals("angularUnit", Units.GRAD, pm.getAngularUnit()); assertEquals("greenwichLongitude", 2.5969213, pm.getGreenwichLongitude(), STRICT); final ParameterValue<?> param = verifyNTF(crs.getConversionFromBase().getParameterValues()); assertEquals("angularUnit", Units.GRAD, param.getUnit()); assertEquals("latitude_of_origin", 52.0, param.doubleValue(), STRICT); }