source: josm/trunk/src/org/openstreetmap/josm/data/projection/proj/Mercator.java@ 9535

Last change on this file since 9535 was 9124, checked in by bastiK, 8 years ago

guess resonable projection bounds, when they haven't been specified (see #12186)

  • Property svn:eol-style set to native
File size: 1.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.projection.proj;
3
4import static java.lang.Math.PI;
5import static java.lang.Math.atan;
6import static java.lang.Math.log;
7import static java.lang.Math.sinh;
8import static java.lang.Math.tan;
9import static org.openstreetmap.josm.tools.I18n.tr;
10
11import org.openstreetmap.josm.data.Bounds;
12import org.openstreetmap.josm.data.projection.ProjectionConfigurationException;
13
14/**
15 * Mercator Projection.
16 */
17public class Mercator implements Proj {
18
19 @Override
20 public String getName() {
21 return tr("Mercator");
22 }
23
24 @Override
25 public String getProj4Id() {
26 return "josm:smerc"; // "merc" is ellipsoidal Mercator projection in PROJ.4
27 }
28
29 @Override
30 public void initialize(ProjParameters params) throws ProjectionConfigurationException {
31 }
32
33 @Override
34 public double[] project(double lat_rad, double lon_rad) {
35 return new double[] {lon_rad, log(tan(PI/4 + lat_rad/2))};
36 }
37
38 @Override
39 public double[] invproject(double east, double north) {
40 return new double[] {atan(sinh(north)), east};
41 }
42
43 @Override
44 public Bounds getAlgorithmBounds() {
45 return new Bounds(-89, -180, 89, 180, false);
46 }
47}
Note: See TracBrowser for help on using the repository browser.