public TMT(double[] parameterValues) { super(parameterValues[CENTRAL_MERIDIAN_INDEX], // lam0 parameterValues[FALSE_EASING_INDEX], // x0 parameterValues[FALSE_NORTHING_INDEX], // y0 parameterValues[SEMI_MAJOR_INDEX]); // a double a = parameterValues[SEMI_MAJOR_INDEX]; // a double b = parameterValues[SEMI_MINOR_INDEX]; // b _k0 = parameterValues[SCALE_FACTOR_INDEX]; // k0 _invK0 = 1.0 / _k0; double phi0 = parameterValues[LATITUDE_OF_ORIGIN_INDEX]; // phi0 _es = 1.0 - (b * b) / (a * a); _esp = _es / (1.0 - _es); _en = MapTransformUtils.getLengthParams(_es); phi0 = MathUtils.DTOR * phi0; _ml0 = MapTransformUtils.meridLength(phi0, Math.sin(phi0), Math.cos(phi0), _en); _parameterValues = new double[parameterValues.length]; System.arraycopy(parameterValues, 0, _parameterValues, 0, parameterValues.length); }
public void testGetLengthParams() { double[] dRet = null; for (int n = 0; n < _exc1.length; n++) { dRet = MapTransformUtils.getLengthParams(_exc1[n]); assertEquals(5, dRet.length); for (int k = 0; k < dRet.length; k++) { assertEquals(_expLengthParams[n][k], dRet[k], 1e-8); } } }
public void testInverseMeridionalLength() { double[] en = null; double retval = 0.0; for (int n = 0; n < _exc2.length; n++) { en = MapTransformUtils.getLengthParams(_exc2[n]); retval = MapTransformUtils.invMeridLength(_args[n], _exc2[n], en); assertEquals(_expInvLength[n], retval, 1e-8); } }