001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.projection.proj;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import org.openstreetmap.josm.data.Bounds;
007import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
008
009/**
010 * Simple Lat/Lon (pseudo-)projection.
011 */
012public class LonLat implements Proj {
013
014    private double a;
015
016    @Override
017    public String getName() {
018        return tr("Lat/lon (Geodetic)");
019    }
020
021    @Override
022    public String getProj4Id() {
023        return "lonlat";
024    }
025
026    @Override
027    public void initialize(ProjParameters params) throws ProjectionConfigurationException {
028        a = params.ellps.a;
029    }
030
031    @Override
032    public double[] project(double lat_rad, double lon_rad) {
033        return new double[] {Math.toDegrees(lon_rad) / a, Math.toDegrees(lat_rad) / a};
034    }
035
036    @Override
037    public double[] invproject(double east, double north) {
038        return new double[] {Math.toRadians(north * a), Math.toRadians(east * a)};
039    }
040
041    @Override
042    public Bounds getAlgorithmBounds() {
043        return new Bounds(-90, -180, 90, 180, false);
044    }
045
046    @Override
047    public boolean isGeographic() {
048        return true;
049    }
050}