// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.opendata.core.io.geographic;
/**
* MapInfo Interchange File (MIF) projections, based on this specification:<ul>
* <li><a href="https://github.com/tricycle/electrodrive-market-analysis/blob/master/specifications/Mapinfo_Mif.pdf">Mapinfo_Mif.pdf</a></li>
* </ul>
* This file has been stored in reference directory to avoid future dead links.
*/
public enum MifProjection {
Albers_Equal_Area_Conic(9, "aea"),
Azimuthal_Equidistant_polar_aspect_only(5, "aeqd"),
Cylindrical_Equal_Area(2, "cea"),
Eckert_IV(14, "eck4"),
Eckert_VI(15, "eck6"),
Equidistant_Conic_also_known_as_Simple_Conic(6, "eqdc"),
Gall(17, "gall"),
Hotine_Oblique_Mercator(7, "omerc"),
Lambert_Azimuthal_Equal_Area_polar_aspect_only(4, "laea"),
Lambert_Conformal_Conic(3, "lcc"),
Lambert_Conformal_Conic_modified_for_Belgium_1972(19, "lcca"),
Longitude_Latitude(1, "lonlat"),
Mercator(10, "merc"),
Miller_Cylindrical(11, "mill"),
New_Zealand_Map_Grid(18, "nzmg"),
Mollweide(13, "moll"),
Polyconic(27, "poly"),
Regional_Mercator(26, "merc"),
Robinson(12, "robin"),
Sinusoidal(16, "sinu"),
Stereographic(20, "stere"),
Swiss_Oblique_Mercator(25, "somerc"),
Transverse_Mercator_also_known_as_Gauss_Kruger(8, "tmerc"),
Transverse_Mercator_modified_for_Danish_System_34_Jylland_Fyn(21, "tmerc"),
Transverse_Mercator_modified_for_Sjaelland(22, "tmerc"),
Transverse_Mercator_modified_for_Danish_System_45_Bornholm(23, "tmerc"),
Transverse_Mercator_modified_for_Finnish_KKJ(24, "tmerc");
private final Integer code;
private final String proj4id;
MifProjection(Integer code, String proj4id) {
this.code = code;
this.proj4id = proj4id;
}
public final Integer getCode() {
return code;
}
/**
* Replies the Proj.4 identifier.
*
* @return The Proj.4 identifier (as reported by cs2cs -lp).
* If no id exists, return {@code null}.
*/
public final String getProj4Id() {
return proj4id;
}
public static MifProjection forCode(Integer code) {
for (MifProjection p : values()) {
if (p.getCode().equals(code)) {
return p;
}
}
return null;
}
}