Changeset 12013 in josm for trunk/src/org/openstreetmap/josm


Ignore:
Timestamp:
2017-04-28T12:16:33+02:00 (3 years ago)
Author:
bastiK
Message:

see #11889 - backport improved version of Math.toDegrees and Math.toRadians from Java 9

Location:
trunk/src/org/openstreetmap/josm
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/projection/AbstractProjection.java

    r10805 r12013  
    116116    public EastNorth latlon2eastNorth(LatLon ll) {
    117117        ll = datum.fromWGS84(ll);
    118         double[] en = proj.project(Math.toRadians(ll.lat()), Math.toRadians(LatLon.normalizeLon(ll.lon() - lon0 - pm)));
     118        double[] en = proj.project(Utils.toRadians(ll.lat()), Utils.toRadians(LatLon.normalizeLon(ll.lon() - lon0 - pm)));
    119119        return new EastNorth((ellps.a * k0 * en[0] + x0) / toMeter, (ellps.a * k0 * en[1] + y0) / toMeter);
    120120    }
     
    135135    private LatLon eastNorth2latlon(EastNorth en, DoubleUnaryOperator normalizeLon) {
    136136        double[] latlonRad = proj.invproject((en.east() * toMeter - x0) / ellps.a / k0, (en.north() * toMeter - y0) / ellps.a / k0);
    137         double lon = Math.toDegrees(latlonRad[1]) + lon0 + pm;
    138         LatLon ll = new LatLon(Math.toDegrees(latlonRad[0]), normalizeLon.applyAsDouble(lon));
     137        double lon = Utils.toDegrees(latlonRad[1]) + lon0 + pm;
     138        LatLon ll = new LatLon(Utils.toDegrees(latlonRad[0]), normalizeLon.applyAsDouble(lon));
    139139        return datum.toWGS84(ll);
    140140    }
  • trunk/src/org/openstreetmap/josm/data/projection/Ellipsoid.java

    r11747 r12013  
    88
    99import org.openstreetmap.josm.data.coor.LatLon;
     10import org.openstreetmap.josm.tools.Utils;
    1011
    1112/**
     
    339340            lt = l;
    340341        }
    341         return new LatLon(Math.toDegrees(lt), Math.toDegrees(lg));
     342        return new LatLon(Utils.toDegrees(lt), Utils.toDegrees(lg));
    342343    }
    343344
     
    349350     */
    350351    public double[] latLon2Cart(LatLon coord) {
    351         double phi = Math.toRadians(coord.lat());
    352         double lambda = Math.toRadians(coord.lon());
     352        double phi = Utils.toRadians(coord.lat());
     353        double lambda = Utils.toRadians(coord.lon());
    353354
    354355        double rn = a / Math.sqrt(1 - e2 * Math.pow(Math.sin(phi), 2));
  • trunk/src/org/openstreetmap/josm/data/projection/datum/SevenParameterDatum.java

    r10621 r12013  
    44import org.openstreetmap.josm.data.coor.LatLon;
    55import org.openstreetmap.josm.data.projection.Ellipsoid;
     6import org.openstreetmap.josm.tools.Utils;
    67
    78/**
     
    3940        this.dy = dy;
    4041        this.dz = dz;
    41         this.rx = Math.toRadians(rx / 3600);
    42         this.ry = Math.toRadians(ry / 3600);
    43         this.rz = Math.toRadians(rz / 3600);
     42        this.rx = Utils.toRadians(rx / 3600);
     43        this.ry = Utils.toRadians(ry / 3600);
     44        this.rz = Utils.toRadians(rz / 3600);
    4445        this.s = s / 1e6;
    4546    }
  • trunk/src/org/openstreetmap/josm/data/projection/proj/AlbersEqualArea.java

    r10378 r12013  
    66import org.openstreetmap.josm.data.Bounds;
    77import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     8import org.openstreetmap.josm.tools.Utils;
    89
    910/**
     
    8990            throw new ProjectionConfigurationException(tr("Parameter ''{0}'' required.", "lat_1"));
    9091
    91         double lat0 = Math.toRadians(params.lat0);
     92        double lat0 = Utils.toRadians(params.lat0);
    9293        // Standards parallels in radians.
    93         double phi1 = Math.toRadians(params.lat1);
    94         double phi2 = params.lat2 == null ? phi1 : Math.toRadians(params.lat2);
     94        double phi1 = Utils.toRadians(params.lat1);
     95        double phi2 = params.lat2 == null ? phi1 : Utils.toRadians(params.lat2);
    9596
    9697        // Compute Constants
  • trunk/src/org/openstreetmap/josm/data/projection/proj/CassiniSoldner.java

    r10748 r12013  
    66import org.openstreetmap.josm.data.Bounds;
    77import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     8import org.openstreetmap.josm.tools.Utils;
    89
    910/**
     
    5657        if (params.lat0 == null)
    5758            throw new ProjectionConfigurationException(tr("Parameter ''{0}'' required.", "lat_0"));
    58         double latitudeOfOrigin = Math.toRadians(params.lat0);
     59        double latitudeOfOrigin = Utils.toRadians(params.lat0);
    5960        ml0 = mlfn(latitudeOfOrigin, Math.sin(latitudeOfOrigin), Math.cos(latitudeOfOrigin));
    6061    }
  • trunk/src/org/openstreetmap/josm/data/projection/proj/DoubleStereographic.java

    r10235 r12013  
    1313import static java.lang.Math.sqrt;
    1414import static java.lang.Math.tan;
    15 import static java.lang.Math.toRadians;
    1615import static org.openstreetmap.josm.tools.I18n.tr;
    1716
     
    1918import org.openstreetmap.josm.data.projection.Ellipsoid;
    2019import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     20import org.openstreetmap.josm.tools.Utils;
    2121
    2222/**
     
    5959
    6060    private void initialize(double lat0) {
    61         double phi0 = toRadians(lat0);
     61        double phi0 = Utils.toRadians(lat0);
    6262        double e2 = ellps.e2;
    6363        r = sqrt(1-e2) / (1 - e2*pow(sin(phi0), 2));
  • trunk/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java

    r11601 r12013  
    66import org.openstreetmap.josm.data.Bounds;
    77import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     8import org.openstreetmap.josm.tools.Utils;
    89
    910/**
     
    7879            throw new ProjectionConfigurationException(tr("Parameter ''{0}'' required.", "lat_0"));
    7980
    80         latitudeOfOrigin = Math.toRadians(params.lat0);
     81        latitudeOfOrigin = Utils.toRadians(params.lat0);
    8182        /*
    8283         * Detects the mode (oblique, etc.).
  • trunk/src/org/openstreetmap/josm/data/projection/proj/LambertConformalConic.java

    r11936 r12013  
    1212import static java.lang.Math.sqrt;
    1313import static java.lang.Math.tan;
    14 import static java.lang.Math.toRadians;
    1514import static org.openstreetmap.josm.tools.I18n.tr;
    1615
     
    1918import org.openstreetmap.josm.data.projection.Ellipsoid;
    2019import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     20import org.openstreetmap.josm.tools.Utils;
    2121
    2222/**
     
    125125        this.params = new Parameters2SP(lat0, lat1, lat2);
    126126
    127         final double m1 = m(toRadians(lat1));
    128         final double m2 = m(toRadians(lat2));
    129 
    130         final double t1 = t(toRadians(lat1));
    131         final double t2 = t(toRadians(lat2));
    132         final double tf = t(toRadians(lat0));
     127        final double m1 = m(Utils.toRadians(lat1));
     128        final double m2 = m(Utils.toRadians(lat2));
     129
     130        final double t1 = t(Utils.toRadians(lat1));
     131        final double t2 = t(Utils.toRadians(lat2));
     132        final double tf = t(Utils.toRadians(lat0));
    133133
    134134        n = (log(m1) - log(m2)) / (log(t1) - log(t2));
     
    144144    private void initialize1SP(double lat0) {
    145145        this.params = new Parameters1SP(lat0);
    146         final double lat0rad = toRadians(lat0);
     146        final double lat0rad = Utils.toRadians(lat0);
    147147
    148148        final double m0 = m(lat0rad);
  • trunk/src/org/openstreetmap/josm/data/projection/proj/LonLat.java

    r10250 r12013  
    77import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
    88import org.openstreetmap.josm.tools.CheckParameterUtil;
     9import org.openstreetmap.josm.tools.Utils;
    910
    1011/**
     
    3435    @Override
    3536    public double[] project(double latRad, double lonRad) {
    36         return new double[] {Math.toDegrees(lonRad) / a, Math.toDegrees(latRad) / a};
     37        return new double[] {Utils.toDegrees(lonRad) / a, Utils.toDegrees(latRad) / a};
    3738    }
    3839
    3940    @Override
    4041    public double[] invproject(double east, double north) {
    41         return new double[] {Math.toRadians(north * a), Math.toRadians(east * a)};
     42        return new double[] {Utils.toRadians(north * a), Utils.toRadians(east * a)};
    4243    }
    4344
  • trunk/src/org/openstreetmap/josm/data/projection/proj/Mercator.java

    r10805 r12013  
    66import org.openstreetmap.josm.data.Bounds;
    77import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     8import org.openstreetmap.josm.tools.Utils;
    89
    910/**
     
    6970             * the standard parallel.
    7071             */
    71             double standardParallel = Math.toRadians(params.lat_ts);
     72            double standardParallel = Utils.toRadians(params.lat_ts);
    7273            if (spherical) {
    7374                scaleFactor *= Math.cos(standardParallel);
     
    8182         */
    8283        if (params.lat0 != null) {
    83             final double lat0 = Math.toRadians(params.lat0);
     84            final double lat0 = Utils.toRadians(params.lat0);
    8485            final double sinPhi = Math.sin(lat0);
    8586            scaleFactor *= (Math.cos(lat0) / (Math.sqrt(1 - e2 * sinPhi * sinPhi)));
  • trunk/src/org/openstreetmap/josm/data/projection/proj/ObliqueMercator.java

    r10965 r12013  
    77import org.openstreetmap.josm.data.coor.LatLon;
    88import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     9import org.openstreetmap.josm.tools.Utils;
    910
    1011/**
     
    228229        double latCenter = 0;
    229230        if (params.lat0 != null) {
    230             latCenter = Math.toRadians(params.lat0);
     231            latCenter = Utils.toRadians(params.lat0);
    231232        }
    232233
     
    269270                throw new ProjectionConfigurationException(tr("Parameter ''{0}'' required.", "lat_2"));
    270271            referencePoint = new LatLon(params.lat1, params.lat2);
    271             double lon1 = Math.toRadians(params.lon1);
    272             double lat1 = Math.toRadians(params.lat1);
    273             double lon2 = Math.toRadians(params.lon2);
    274             double lat2 = Math.toRadians(params.lat2);
     272            double lon1 = Utils.toRadians(params.lon1);
     273            double lat1 = Utils.toRadians(params.lat1);
     274            double lon2 = Utils.toRadians(params.lon2);
     275            double lat2 = Utils.toRadians(params.lat2);
    275276
    276277            if (Math.abs(lat1 - lat2) <= EPSILON ||
     
    312313            referencePoint = new LatLon(params.lat0, params.lonc);
    313314
    314             lonCenter = Math.toRadians(params.lonc);
    315             azimuth = Math.toRadians(params.alpha);
     315            lonCenter = Utils.toRadians(params.lonc);
     316            azimuth = Utils.toRadians(params.alpha);
    316317            // CHECKSTYLE.OFF: SingleSpaceSeparator
    317318            if ((azimuth > -1.5*Math.PI && azimuth < -0.5*Math.PI) ||
     
    322323            // CHECKSTYLE.ON: SingleSpaceSeparator
    323324            if (params.gamma != null) {
    324                 rectifiedGridAngle = Math.toRadians(params.gamma);
     325                rectifiedGridAngle = Utils.toRadians(params.gamma);
    325326            } else {
    326327                rectifiedGridAngle = azimuth;
     
    371372
    372373    private static double normalizeLonRad(double a) {
    373         return Math.toRadians(LatLon.normalizeLon(Math.toDegrees(a)));
     374        return Utils.toRadians(LatLon.normalizeLon(Utils.toDegrees(a)));
    374375    }
    375376
     
    435436        double lat = referencePoint.lat();
    436437        double dLat = 3.0;
    437         double lon = referencePoint.lon() - Math.toDegrees(centralMeridian);
     438        double lon = referencePoint.lon() - Utils.toDegrees(centralMeridian);
    438439        double dLon = 3.0;
    439440        return new Bounds(lat - dLat, lon - dLon, lat + dLat, lon + dLon, false);
     
    442443    @Override
    443444    public double getCentralMeridian() {
    444         return Math.toDegrees(centralMeridian);
     445        return Utils.toDegrees(centralMeridian);
    445446    }
    446447}
  • trunk/src/org/openstreetmap/josm/data/projection/proj/PolarStereographic.java

    r10378 r12013  
    66import org.openstreetmap.josm.data.Bounds;
    77import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
     8import org.openstreetmap.josm.tools.Utils;
    89
    910/**
     
    107108            latitudeTrueScale = (params.lat0 < 0) ? -Math.PI/2 : Math.PI/2;
    108109        } else {
    109             latitudeTrueScale = Math.toRadians(params.lat_ts);
     110            latitudeTrueScale = Utils.toRadians(params.lat_ts);
    110111        }
    111112        southPole = latitudeTrueScale < 0;
  • trunk/src/org/openstreetmap/josm/data/projection/proj/SwissObliqueMercator.java

    r11660 r12013  
    1414import static java.lang.Math.sqrt;
    1515import static java.lang.Math.tan;
    16 import static java.lang.Math.toRadians;
    1716import static org.openstreetmap.josm.tools.I18n.tr;
    1817
     
    2120import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
    2221import org.openstreetmap.josm.tools.JosmRuntimeException;
     22import org.openstreetmap.josm.tools.Utils;
    2323
    2424// CHECKSTYLE.OFF: LineLength
     
    5858
    5959    private void initialize(double lat0) {
    60         phi0 = toRadians(lat0);
     60        phi0 = Utils.toRadians(lat0);
    6161        kR = sqrt(1 - ellps.e2) / (1 - (ellps.e2 * pow(sin(phi0), 2)));
    6262        alpha = sqrt(1 + (ellps.eb2 * pow(cos(phi0), 4)));
  • trunk/src/org/openstreetmap/josm/data/projection/proj/TransverseMercator.java

    r11555 r12013  
    77import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
    88import org.openstreetmap.josm.tools.CheckParameterUtil;
     9import org.openstreetmap.josm.tools.Utils;
    910
    1011/**
     
    136137        CheckParameterUtil.ensureParameterNotNull(params.ellps, "params.ellps");
    137138        eb2 = params.ellps.eb2;
    138         latitudeOfOrigin = params.lat0 == null ? 0 : Math.toRadians(params.lat0);
     139        latitudeOfOrigin = params.lat0 == null ? 0 : Utils.toRadians(params.lat0);
    139140        ml0 = mlfn(latitudeOfOrigin, Math.sin(latitudeOfOrigin), Math.cos(latitudeOfOrigin));
    140141
    141142        if (params.gamma != null) {
    142                 rectifiedGridAngle = Math.toRadians(params.gamma);
     143                rectifiedGridAngle = Utils.toRadians(params.gamma);
    143144        } else {
    144145                rectifiedGridAngle = 0.0;
  • trunk/src/org/openstreetmap/josm/tools/Utils.java

    r11893 r12013  
    9393    private static final String[] SIZE_UNITS = {"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"};
    9494
     95    private static final double TO_DEGREES = 180.0 / Math.PI;
     96    private static final double TO_RADIANS = Math.PI / 180.0;
     97
    9598    private Utils() {
    9699        // Hide default constructor for utils classes
     
    12851288     * Returns a new secure DOM builder, supporting XML namespaces.
    12861289     * @return a new secure DOM builder, supporting XML namespaces
    1287      * @throws ParserConfigurationException if a parser cannot be created which satisfies the requested configuration.
    12881290     * @throws ParserConfigurationException if a parser cannot be created which satisfies the requested configuration.
    12891291     * @since 10404
     
    15531555        }
    15541556    }
     1557
     1558    /**
     1559     * Convert angle from radians to degrees.
     1560     *
     1561     * Replacement for {@link Math#toDegrees(double)} to match the Java 9
     1562     * version of that method. (Can be removed when JOSM support for Java 8 ends.)
     1563     * Only relevant in relation to ProjectionRegressionTest.
     1564     * @see https://josm.openstreetmap.de/ticket/11889
     1565     * @param angleRad an angle in radians
     1566     * @return the same angle in degrees
     1567     */
     1568    public static double toDegrees(double angleRad) {
     1569        return angleRad * TO_DEGREES;
     1570    }
     1571
     1572    /**
     1573     * Convert angle from degrees to radians.
     1574     *
     1575     * Replacement for {@link Math#toRadians(double)} to match the Java 9
     1576     * version of that method. (Can be removed when JOSM support for Java 8 ends.)
     1577     * Only relevant in relation to ProjectionRegressionTest.
     1578     * @see https://josm.openstreetmap.de/ticket/11889
     1579     * @param angleDeg an angle in degrees
     1580     * @return the same angle in radians
     1581     */
     1582    public static double toRadians(double angleDeg) {
     1583        return angleDeg * TO_RADIANS;
     1584    }
    15551585}
Note: See TracChangeset for help on using the changeset viewer.