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}