/** * Gets the UTM projection parameters for the transverse mercator transformation. * * @param zoneIndex the zone index in the range 0 to {@link #MAX_UTM_ZONE} - 1. * @param south whether or not the projection is defined for the southern hemispere * * @return the UTM projection parameters */ public static double[] getProjectionParams(int zoneIndex, boolean south) { return new double[]{Ellipsoid.WGS_84.getSemiMajor(), // semi_major Ellipsoid.WGS_84.getSemiMinor(), // semi_minor 0.0, // latitude_of_origin (not used) getCentralMeridian(zoneIndex), // central_meridian 0.9996, // scale_factor 500000.0, // false_easting south ? 10000000.0 : 0.0 // false_northing }; }
final Ellipsoid ellipsoid = new Ellipsoid(ellipsoidName, minorAxis, majorAxis); final String datumName = horizontalDatumElem.getChildTextTrim( DimapProductConstants.TAG_HORIZONTAL_DATUM_NAME);
@Override public boolean equals(Object obj) { if (obj instanceof Datum) { final Datum that = (Datum) obj; return this.name.equals(that.name) && this.dx == that.dx && this.dy == that.dy && this.dz == that.dz && this.ellipsoid.equals(that.ellipsoid); } return false; }
indent++; final Ellipsoid ellipsoid = datum.getEllipsoid(); printLine(indent, DimapProductConstants.TAG_ELLIPSOID_NAME, ellipsoid.getName()); final String[] ellipsoidParametersTags = createTags(indent, DimapProductConstants.TAG_ELLIPSOID_PARAMETERS); println(ellipsoidParametersTags[0]); final String[][] ellipsoidAttrib = new String[][]{new String[]{DimapProductConstants.ATTRIB_UNIT, "M"}}; printLine(indent, DimapProductConstants.TAG_ELLIPSOID_MAJ_AXIS, ellipsoidAttrib, String.valueOf(ellipsoid.getSemiMajor())); printLine(indent, DimapProductConstants.TAG_ELLIPSOID_MIN_AXIS, ellipsoidAttrib, String.valueOf(ellipsoid.getSemiMinor())); println(ellipsoidParametersTags[1]); --indent;
Ellipsoid.WGS_84.getSemiMajor(), Ellipsoid.WGS_84.getSemiMajor(), 0.0, 0.0,
@Override public int hashCode() { int result = 17; result = 31 * result + name.hashCode(); result = 31 * result + hashCodeDouble(semiMajor); result = 31 * result + hashCodeDouble(semiMinor); return result; }
@Override public int hashCode() { int result = 17; result = 31 * result + name.hashCode(); result = 31 * result + hashCodeDouble(dx); result = 31 * result + hashCodeDouble(dy); result = 31 * result + hashCodeDouble(dz); result = 31 * result + ellipsoid.hashCode(); return result; }
" <HORIZONTAL_DATUM_NAME>" + datum.getName() + "</HORIZONTAL_DATUM_NAME>" + LS + " <Ellipsoid>" + LS + " <ELLIPSOID_NAME>" + ellipsoid.getName() + "</ELLIPSOID_NAME>" + LS + " <Ellipsoid_Parameters>" + LS + " <ELLIPSOID_MAJ_AXIS unit=\"M\">" + ellipsoid.getSemiMajor() + "</ELLIPSOID_MAJ_AXIS>" + LS + " <ELLIPSOID_MIN_AXIS unit=\"M\">" + ellipsoid.getSemiMinor() + "</ELLIPSOID_MIN_AXIS>" + LS + " </Ellipsoid_Parameters>" + LS + " </Ellipsoid>" + LS +
assertEquals(expEllipsoid.getName(), actualEllipsoid.getName()); assertEquals(expEllipsoid.getSemiMajor(), actualEllipsoid.getSemiMajor(), 1.0e-10); assertEquals(expEllipsoid.getSemiMinor(), actualEllipsoid.getSemiMinor(), 1.0e-10);
/** * Alters the underlying map transformation by changing the values of the transform parameters named * "semi_major" and "semi_minor" (if any) to the ones of the supplied ellipsoid. * * @param ellipsoid the ellipsoid */ public void alterMapTransform(Ellipsoid ellipsoid) { final MapTransform oldTransform = getMapTransform(); final Parameter[] parameters = oldTransform.getDescriptor().getParameters(); final double[] parameterValues = oldTransform.getParameterValues(); boolean altered = false; for (int i = 0; i < parameters.length; i++) { if ("semi_minor".equals(parameters[i].getName())) { parameterValues[i] = ellipsoid.getSemiMinor(); altered = true; } else if ("semi_major".equals(parameters[i].getName())) { parameterValues[i] = ellipsoid.getSemiMajor(); altered = true; } } if (altered) { final MapTransform newTransform = oldTransform.getDescriptor().createTransform(parameterValues); setMapTransform(newTransform); } }
final MapTransform mapTransform = descriptor.createTransform(parameterValues); final MapProjection projection = new MapProjection(projectionName, mapTransform, mapUnit); final Ellipsoid ellipsoid = new Ellipsoid(ellipsoidName, semiMinor, semiMajor); final Datum datum = new Datum(datumName, ellipsoid, 0, 0, 0); // @todo nf/nf - read also DX,DY,DZ final MapInfo mapInfo = new MapInfo(projection, pixelX, pixelY, easting, northing, pixelSizeX, pixelSizeY,
" <HORIZONTAL_DATUM_NAME>" + _datum.getName() + "</HORIZONTAL_DATUM_NAME>" + LS + " <Ellipsoid>" + LS + " <ELLIPSOID_NAME>" + _datum.getEllipsoid().getName() + "</ELLIPSOID_NAME>" + LS + " <Ellipsoid_Parameters>" + LS + " <ELLIPSOID_MAJ_AXIS unit=\"M\">" + _datum.getEllipsoid().getSemiMajor() + "</ELLIPSOID_MAJ_AXIS>" + LS + " <ELLIPSOID_MIN_AXIS unit=\"M\">" + _datum.getEllipsoid().getSemiMinor() + "</ELLIPSOID_MIN_AXIS>" + LS + " </Ellipsoid_Parameters>" + LS + " </Ellipsoid>" + LS +
public void testForwardTransform() { double[] params = new double[]{Ellipsoid.WGS_84.getSemiMajor(), Ellipsoid.WGS_84.getSemiMinor(), 0.0, 0.0, 1.0, 0.0, 0.0}; MapTransformDescriptor desc = new TransverseMercatorDescriptor(); MapTransform trans = desc.createTransform(params); GeoPos geoPt = new GeoPos(); Point2D ptRet = null; for (int n = 0; n < _srcCoords.length; n++) { geoPt.lat = (float) _srcCoords[n][1]; geoPt.lon = (float) _srcCoords[n][0]; ptRet = trans.forward(geoPt, ptRet); assertEquals(_targCoords[n][0], ptRet.getX(), _metricDelta); assertEquals(_targCoords[n][1], ptRet.getY(), _metricDelta); } }
private MapInfo createMapInfo() { MapTransform transform = MapTransformFactory.createTransform("Identity", null); MapProjection projection = new MapProjection("pro_name", transform); Datum datum = new Datum("datumName", new Ellipsoid("ellipsoidName", 7d, 8d), 0, 0, 0); MapInfo mapInfo = new MapInfo(projection, 1f, 2f, 3f, 4f, 5f, 6f, datum); mapInfo.setSceneWidth(123); mapInfo.setSceneHeight(234); return mapInfo; } }
final String datumName = datum.getName(); final String projectionName = projection.getName(); final String ellipsoidName = ellipsoid.getName(); final double semiMajor = ellipsoid.getSemiMajor(); final double semiMinor = ellipsoid.getSemiMinor(); final String typeID = descriptor.getTypeID(); final Parameter[] parameters = descriptor.getParameters();
public void testCartographicMapTransformParameterSettings() { double[] params = new double[]{Ellipsoid.WGS_84.getSemiMajor(), Ellipsoid.WGS_84.getSemiMinor(), 1.0, 2.0, 3.0, 4.0, 5.0}; MapTransform mt = MapTransformFactory.createTransform("Transverse_Mercator", params); assertTrue(mt instanceof CartographicMapTransform); CartographicMapTransform amt = (CartographicMapTransform) mt; assertEquals(2.0, amt.getCentralMeridian(), 1e-10); assertEquals(4.0, amt.getFalseEasting(), 1e-10); assertEquals(5.0, amt.getFalseNorthing(), 1e-10); assertEquals(1.0 * Ellipsoid.WGS_84.getSemiMajor(), amt.getSemiMajor(), 1e-10); assertEquals(1.0 / Ellipsoid.WGS_84.getSemiMajor(), amt.getInverseSemiMajor(), 1e-10); } }
org.opengis.referencing.datum.Ellipsoid gtEllipsoid = CRS.getEllipsoid(mapCRS); String ellipsoidName = gtEllipsoid.getName().getCode(); Ellipsoid ellipsoid = new Ellipsoid(ellipsoidName, gtEllipsoid.getSemiMinorAxis(), gtEllipsoid.getSemiMajorAxis());
assertEquals(_ellipsoidName, actualEllipsoid.getName()); assertEquals(_semiMajor, actualEllipsoid.getSemiMajor(), 1.0e-10); assertEquals(_semiMinor, actualEllipsoid.getSemiMinor(), 1.0e-10);
public void testX() { final TransverseMercatorDescriptor tmd = new TransverseMercatorDescriptor(); final MapProjection mp = new MapProjection("bibo", tmd.createTransform(null), "meter"); assertEquals(Ellipsoid.WGS_84.getSemiMajor(), mp.getMapTransform().getParameterValues()[0], 1e-5); assertEquals(Ellipsoid.WGS_84.getSemiMinor(), mp.getMapTransform().getParameterValues()[1], 1e-5); mp.alterMapTransform(Ellipsoid.BESSEL); assertEquals(Ellipsoid.BESSEL.getSemiMajor(), mp.getMapTransform().getParameterValues()[0], 1e-5); assertEquals(Ellipsoid.BESSEL.getSemiMinor(), mp.getMapTransform().getParameterValues()[1], 1e-5); }
final MapTransform transform = descriptor.createTransform(values); final MapProjection projection = new MapProjection(projectionName, transform, mapUnit); final Ellipsoid ellipsoid = new Ellipsoid(ellipsoidName, semiMinor, semiMajor); final Datum datum = new Datum(datumName, ellipsoid, 0, 0, 0); final MapInfo mapInfo = new MapInfo(projection, pixelX, pixelY, easting, northing, pixelSizeX, pixelSizeY,