// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.opendata.core.io.geographic;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.AIRY;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.AUSTRALIAN_NATIONAL;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.BESSEL;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.BESSEL_1841;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.CLARKE_1866;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.CLARKE_1880;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.EVEREST;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.GRS_67;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.GRS_80;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.HELMERT_1906;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.HOUGH;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.INTERNATIONAL;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.KRASSOVSKY;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.MODIFIED_AIRY;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.MODIFIED_CLARKE_1866;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.MODIFIED_EVEREST;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.MODIFIED_FISCHER_1960;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.WGS_60;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.WGS_66;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.WGS_72;
import static org.openstreetmap.josm.plugins.opendata.core.io.geographic.MifEllipsoid.WGS_84;
/**
* MapInfo Interchange File (MIF) datums, 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 MifDatum {
// CHECKSTYLE.OFF: LineLength
ADINDAN(1, "Ethiopia, Mali, Senegal, Sudan", CLARKE_1880),
AFGOOYE(2, "Somalia", KRASSOVSKY),
AIN_EL_ABD_1970(3, "Bahrain Island", INTERNATIONAL),
ANNA_1_ASTRO_1965(4, "Cocos Islands", AUSTRALIAN_NATIONAL),
ARC_1950(5, "Botswana, Lesotho, Malawi, Swaziland, Zaire, Zambia, Zimbabwe", CLARKE_1880),
ARC_1960(6, "Kenya, Tanzania", CLARKE_1880),
ASCENSION_ISLAND_1958(7, "Ascension Island", INTERNATIONAL),
ASTRO_BEACON_E(8, "Iwo Jima Island", INTERNATIONAL),
ASTRO_B4_SOROL_ATOLL(9, "Tern Island", INTERNATIONAL),
ASTRO_DOS_71_4(10, "St. Helena Island", INTERNATIONAL),
ASTRONOMIC_STATION_1952(11, "Marcus Island", INTERNATIONAL),
AUSTRALIAN_GEODETIC_1966_AGD_66(12, "Australia and Tasmania Island", AUSTRALIAN_NATIONAL),
AUSTRALIAN_GEODETIC_1984_AGD_84(13, "Australia and Tasmania Island", AUSTRALIAN_NATIONAL),
BELGIUM(110, "Belgium", INTERNATIONAL),
BELLEVUE_IGN(14, "Efate and Erromango Islands", INTERNATIONAL),
BERMUDA_1957(15, "Bermuda Islands", CLARKE_1866),
BOGOTA_OBSERVATORY(16, "Colombia", INTERNATIONAL),
CAMPO_INCHAUSPE(17, "Argentina", INTERNATIONAL),
CANTON_ASTRO_1966(18, "Phoenix Islands", INTERNATIONAL),
CAPE(19, "South Africa", CLARKE_1880),
CAPE_CANAVERAL(20, "Florida and Bahama Islands", CLARKE_1866),
CARTHAGE(21, "Tunisia", CLARKE_1880),
CHATHAM_1971(22, "Chatham Island (New Zealand)", INTERNATIONAL),
CHUA_ASTRO(23, "Paraguay", INTERNATIONAL),
CORREGO_ALEGRE(24, "Brazil", INTERNATIONAL),
DEUTSCHES_HAUPTDREICKSNETZ_DHDN(1000, "Germany", BESSEL),
DJAKARTA_BATAVIA(25, "Sumatra Island (Indonesia)", BESSEL_1841),
DOS_1968(26, "Gizo Island (New Georgia Islands)", INTERNATIONAL),
EASTER_ISLAND_1967(27, "Easter Island", INTERNATIONAL),
EUROPEAN_1950_ED_50(28, "Austria, Belgium, Denmark, Finland, France, Germany, Gibraltar, Greece, Italy, Luxembourg, Netherlands, Norway, Portugal, Spain, Sweden, Switzerland", INTERNATIONAL),
EUROPEAN_1979_ED_79(29, "Austria, Finland, Netherlands, Norway, Spain, Sweden, Switzerland", INTERNATIONAL),
EUROPEAN_1987_ED_87(108, "Europe", INTERNATIONAL),
GANDAJIKA_BASE(30, "Republic of Maldives", INTERNATIONAL),
GEODETIC_DATUM_1949(31, "New Zealand", INTERNATIONAL),
GEODETIC_REFERENCE_SYSTEM_1967_GRS_67(32, "Worldwide", GRS_67),
GEODETIC_REFERENCE_SYSTEM_1980_GRS_80(33, "Worldwide", GRS_80),
GUAM_1963(34, "Guam Island", CLARKE_1866),
GUX_1_ASTRO(35, "Guadalcanal Island", INTERNATIONAL),
HITO_XVIII_1963(36, "South Chile (near 53°S)", INTERNATIONAL),
HJORSEY_1955(37, "Iceland", INTERNATIONAL),
HONG_KONG_1963(38, "Hong Kong", INTERNATIONAL),
HU_TZU_SHAN(39, "Taiwan", INTERNATIONAL),
INDIAN_40(40, "Thailand and Vietnam", EVEREST),
INDIAN_41(41, "Bangladesh, India, Nepal", EVEREST),
IRELAND_1965(42, "Ireland", MODIFIED_AIRY),
ISTS_073_ASTRO_1969(43, "Diego Garcia", INTERNATIONAL),
JOHNSTON_ISLAND_1961(44, "Johnston Island", INTERNATIONAL),
KANDAWALA(45, "Sri Lanka", EVEREST),
KERGUELEN_ISLAND(46, "Kerguelen Island", INTERNATIONAL),
KERTAU_1948(47, "West Malaysia and Singapore", MODIFIED_EVEREST),
LC_5_ASTRO(48, "Cayman Brac Island", CLARKE_1866),
LIBERIA_1964(49, "Liberia", CLARKE_1880),
LISBOA_DLX(113, "Portugal", INTERNATIONAL),
LUZON_50(50, "Philippines (excluding Mindanao Island)", CLARKE_1866),
LUZON_51(51, "Mindanao Island", CLARKE_1866),
MAHE_1971(52, "Mahe Island", CLARKE_1880),
MARCO_ASTRO(53, "Salvage Islands", INTERNATIONAL),
MASSAWA(54, "Eritrea (Ethiopia)", BESSEL_1841),
MELRICA_1973_D73(114, "Portugal", INTERNATIONAL),
MERCHICH(55, "Morocco", CLARKE_1880),
MIDWAY_ASTRO_1961(56, "Midway Island", INTERNATIONAL),
MINNA(57, "Nigeria", CLARKE_1880),
NAHRWAN_58(58, "Masirah Island (Oman)", CLARKE_1880),
NAHRWAN_59(59, "United Arab Emirates", CLARKE_1880),
NAHRWAN_60(60, "Saudi Arabia", CLARKE_1880),
NAPARIMA_BWI(61, "Trinidad and Tobago", INTERNATIONAL),
NETHERLANDS(109, "Netherlands", BESSEL),
NORTH_AMERICAN_1927_NAD_27_CONTINENTAL(62, "Continental US", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_ALASKA(63, "Alaska", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_BAHAMAS(64, "Bahamas (excluding San Salvador Island)", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_SAN_SALVADOR(65, "San Salvador Island", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_CANADA(66, "Canada (including Newfoundland Island)", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_CANAL_ZONE(67, "Canal Zone", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_CARIBBEAN(68, "Caribbean (Turks and Caicos Islands)", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_CENTRAL_AMERICA(69, "Central America (Belize, Costa Rica, El Salvador, Guatemala, Honduras, Nicaragua)", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_CUBA(70, "Cuba", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_GREENLAND(71, "Greenland (Hayes Peninsula)", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_MEXICO(72, "Mexico", CLARKE_1866),
NORTH_AMERICAN_1927_NAD_27_MICHIGAN(73, "Michigan (used only for State Plane Coordinate System 1927)", MODIFIED_CLARKE_1866),
NORTH_AMERICAN_1983_NAD_83(74, "Alaska, Canada, Central America, Continental US, Mexico", GRS_80),
NOUVELLE_TRIANGULATION_FRANCAISE_NTF(107, "France", CLARKE_1880),
NOUVELLE_TRIANGULATION_FRANCAISE_NTF_GREENWICH_PRIME_MERIDIAN(1002, "France", CLARKE_1880),
NWGL_10(111, "Worldwide", WGS_72),
OBSERVATORIO_1966(75, "Corvo and Flores Islands (Azores)", INTERNATIONAL),
OLD_EGYPTIAN(76, "Egypt", HELMERT_1906),
OLD_HAWAIIAN(77, "Hawaii", CLARKE_1866),
OMAN(78, "Oman", CLARKE_1880),
ORDNANCE_SURVEY_OF_GREAT_BRITAIN_1936(79, "England, Isle of Man, Scotland, Shetland Islands, Wales", AIRY),
PICO_DE_LAS_NIEVES(80, "Canary Islands", INTERNATIONAL),
PITCAIRN_ASTRO_1967(81, "Pitcairn Island", INTERNATIONAL),
POTSDAM(1000, "Germany", BESSEL),
PROVISIONAL_SOUTH_CHILEAN_1963(36, "South Chile (near 53°S)", INTERNATIONAL),
PROVISIONAL_SOUTH_AMERICAN_1956(82, "Bolivia, Chile, Colombia, Ecuador, Guyana, Peru, Venezuela", INTERNATIONAL),
PUERTO_RICO(83, "Puerto Rico and Virgin Islands", CLARKE_1866),
PULKOVO_1942(1001, "Germany", KRASSOVSKY),
QATAR_NATIONAL(84, "Qatar", INTERNATIONAL),
QORNOQ(85, "South Greenland", INTERNATIONAL),
RAUENBERG(1000, "Germany", BESSEL),
REUNION(86, "Mascarene Island", INTERNATIONAL),
RIKETS_TRIANGULERING_1990_RT_90(112, "Sweden", BESSEL),
ROME_1940(87, "Sardinia Island", INTERNATIONAL),
SANTO_DOS(88, "Espirito Santo Island", INTERNATIONAL),
SAO_BRAZ(89, "São Miguel, Santa Maria Islands (Azores)", INTERNATIONAL),
SAPPER_HILL_1943(90, "East Falkland Island", INTERNATIONAL),
SCHWARZECK(91, "Namibia Modified", BESSEL_1841),
SOUTH_AMERICAN_1969(92, "Argentina, Bolivia, Brazil, Chile, Colombia, Ecuador, Guyana, Paraguay, Peru, Venezuela, Trinidad, and Tobago", MifEllipsoid.SOUTH_AMERICAN_1969),
SOUTH_ASIA(93, "Singapore", MODIFIED_FISCHER_1960),
SOUTHEAST_BASE(94, "Porto Santo and Madeira Islands", INTERNATIONAL),
SOUTHWEST_BASE(95, "Faial, Graciosa, Pico, Sao Jorge, Terceira Islands (Azores)", INTERNATIONAL),
SWITZERLAND_CH_1903(1003, "Switzerland", BESSEL),
TIMBALAI_1948(96, "Brunei and East Malaysia (Sarawak and Sabah)", EVEREST),
TOKYO(97, "Japan, Korea, Okinawa", BESSEL_1841),
TRISTAN_ASTRO_1968(98, "Tristan da Cunha", INTERNATIONAL),
VITI_LEVU_1916(99, "Viti Levu Island (Fiji Islands)", CLARKE_1880),
WAKE_ENIWETOK_1960(100, "", HOUGH),
WORLD_GEODETIC_SYSTEM_1960_WGS_60(101, "", WGS_60),
WORLD_GEODETIC_SYSTEM_1966_WGS_66(102, "", WGS_66),
WORLD_GEODETIC_System_1972_WGS_72(103, "", WGS_72),
WORLD_GEODETIC_System_1984_WGS_84(104, "", WGS_84),
YACARE(105, "", INTERNATIONAL),
ZANDERIJ(106, "", INTERNATIONAL),
CUSTOM(999, null, null);
// CHECKSTYLE.ON: LineLength
private final Integer code;
private final String area;
private final MifEllipsoid ellipsoid;
MifDatum(Integer code, String area, MifEllipsoid ellipsoid) {
this.code = code;
this.area = area;
this.ellipsoid = ellipsoid;
}
public final Integer getCode() {
return code;
}
public final String getArea() {
return area;
}
public final MifEllipsoid getEllipsoid() {
return ellipsoid;
}
public static MifDatum forCode(Integer code) {
for (MifDatum p : values()) {
if (p.getCode().equals(code)) {
return p;
}
}
return null;
}
}