/** * This method is called within the <code>{@link MapProjectionRegistry#registerDescriptor}</code> method after an * instance of this <code>MapTransformDescriptor</code> has been successfully registered. The method can and should * be used to register projections that are based on the type of <code>{@link MapTransform}</code> described by this * <code>MapTransformDescriptor</code>. Registering projection instances is done using the using the <code>{@link * MapProjectionRegistry#registerProjection}</code> method. * <p/> * <p/> * A typical implementation of this method would be: * <pre> * public void registerProjections() { * MapProjectionRegistry.registerProjection(new MapProjection("my-projection-name-1", new * MyMapTransform(param_1))); * MapProjectionRegistry.registerProjection(new MapProjection("my-projection-name-2", new * MyMapTransform(param_2))); * MapProjectionRegistry.registerProjection(new MapProjection("my-projection-name-3", new * MyMapTransform(param_3))); * ... * } * </pre> */ public void registerProjections() { MapProjectionRegistry.registerProjection(new MapProjection(getName(), createTransform(null), false)); }
/** * Creates an instance of the map transform for the given parameter values. */ public MapTransform createTransform(double[] parameterValues) { if (parameterValues == null) { parameterValues = getParameterDefaultValues(); } return new LCCT(parameterValues); }
final LambertConformalConicDescriptor expDescriptor = new LambertConformalConicDescriptor(); final MapTransform expTransform = expDescriptor.createTransform(null); final Document dom = DimapProductHelpers.createDom( new ByteArrayInputStream(xmlMapGeocodingStringStyleOldFormat.getBytes()));
public void testForwardTransform() { GeoPos geoPt = new GeoPos(); Point2D ptRet = null; MapTransformDescriptor desc = new LambertConformalConicDescriptor(); // Parameter set 1 // --------------- MapTransform trans = desc.createTransform(_params_1); for (int n = 0; n < _srcCoords_1.length; n++) { geoPt.lat = (float) _srcCoords_1[n][1]; geoPt.lon = (float) _srcCoords_1[n][0]; ptRet = trans.forward(geoPt, ptRet); assertEquals(_targCoords_1[n][0], ptRet.getX(), _metricDelta); assertEquals(_targCoords_1[n][1], ptRet.getY(), _metricDelta); } // Parameter set 2 // --------------- trans = desc.createTransform(_params_2); for (int n = 0; n < _srcCoords_2.length; n++) { geoPt.lat = (float) _srcCoords_2[n][1]; geoPt.lon = (float) _srcCoords_2[n][0]; ptRet = trans.forward(geoPt, ptRet); assertEquals(_targCoords_2[n][0], ptRet.getX(), _metricDelta); assertEquals(_targCoords_2[n][1], ptRet.getY(), _metricDelta); } }
private void addGeocoding(Product product, int codingType) { switch (codingType) { case MAP_GEOCODING: final LambertConformalConicDescriptor descriptor = new LambertConformalConicDescriptor(); final MapTransform transform = descriptor.createTransform(new double[]{12, 13, 14, 15, 16, 17, 18}); final MapProjection projection = new MapProjection(LambertConformalConicDescriptor.NAME, transform); MapInfo mapInfo = new MapInfo(projection, 1f, 2f, 3f, 4f, 5f, 6f, Datum.WGS_84);
public void testDescriptor() { MapTransformDescriptor desc = new LambertConformalConicDescriptor(); Parameter[] parameter = null; assertEquals("Lambert_Conformal_Conic", desc.getTypeID()); assertEquals("meter", desc.getMapUnit()); parameter = desc.getParameters(); assertNotNull(parameter); }
final String mapUnit = "mapUnit"; final LambertConformalConicDescriptor descriptor = new LambertConformalConicDescriptor(); final MapTransform transform = descriptor.createTransform(values); final MapProjection projection = new MapProjection(projectionName, transform, mapUnit); final Ellipsoid ellipsoid = new Ellipsoid(ellipsoidName, semiMinor, semiMajor);
public void testInverseTransform() { GeoPos geoPt = new GeoPos(); Point2D mapPt = new Point2D.Double(); MapTransformDescriptor desc = new LambertConformalConicDescriptor(); // Parameter set 1 // --------------- MapTransform trans = desc.createTransform(_params_1); for (int n = 0; n < _targCoords_1.length; n++) { mapPt.setLocation(_targCoords_1[n][0], _targCoords_1[n][1]); geoPt = trans.inverse(mapPt, geoPt); assertEquals(_srcCoords_1[n][1], geoPt.getLat(), _angleDelta); assertEquals(_srcCoords_1[n][0], geoPt.getLon(), _angleDelta); } // Parameter set 2 // --------------- trans = desc.createTransform(_params_2); for (int n = 0; n < _targCoords_2.length; n++) { mapPt.setLocation(_targCoords_2[n][0], _targCoords_2[n][1]); geoPt = trans.inverse(mapPt, geoPt); assertEquals(_srcCoords_2[n][1], geoPt.getLat(), _angleDelta); assertEquals(_srcCoords_2[n][0], geoPt.getLon(), _angleDelta); } } }