use super::super::types::{CrsType, EpsgDatabase, EpsgDefinition};
pub(super) fn register_european_national_grids(db: &mut EpsgDatabase) {
let european_grids: &[(u32, &str, &str, &str, &str)] = &[
(
2391,
"KKJ / Finland Uniform Coordinate System",
"+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs",
"Finland",
"International 1924",
),
(
3006,
"SWEREF99 TM",
"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3007,
"SWEREF99 12 00",
"+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3008,
"SWEREF99 13 30",
"+proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3009,
"SWEREF99 15 00",
"+proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3010,
"SWEREF99 16 30",
"+proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3011,
"SWEREF99 18 00",
"+proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3012,
"SWEREF99 14 15",
"+proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3013,
"SWEREF99 15 45",
"+proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3014,
"SWEREF99 17 15",
"+proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3015,
"SWEREF99 18 45",
"+proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3016,
"SWEREF99 20 15",
"+proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3017,
"SWEREF99 21 45",
"+proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
3018,
"SWEREF99 23 15",
"+proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Sweden",
"GRS80",
),
(
25832,
"ETRS89 / UTM zone 32N",
"+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs",
"Europe (6°E to 12°E)",
"ETRS89",
),
(
25833,
"ETRS89 / UTM zone 33N",
"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs",
"Europe (12°E to 18°E)",
"ETRS89",
),
(
25834,
"ETRS89 / UTM zone 34N",
"+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs",
"Europe (18°E to 24°E)",
"ETRS89",
),
(
25835,
"ETRS89 / UTM zone 35N",
"+proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs",
"Europe (24°E to 30°E)",
"ETRS89",
),
(
25836,
"ETRS89 / UTM zone 36N",
"+proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs",
"Europe (30°E to 36°E)",
"ETRS89",
),
(
3003,
"Monte Mario / Italy zone 1",
"+proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs",
"Italy West",
"Monte Mario",
),
(
3004,
"Monte Mario / Italy zone 2",
"+proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs",
"Italy East",
"Monte Mario",
),
(
6707,
"RDN2008 / UTM zone 32N",
"+proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs",
"Italy (6°E to 12°E)",
"RDN2008",
),
(
6708,
"RDN2008 / UTM zone 33N",
"+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs",
"Italy (12°E to 18°E)",
"RDN2008",
),
(
6709,
"RDN2008 / UTM zone 34N",
"+proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs",
"Italy (18°E to 24°E)",
"RDN2008",
),
(
2062,
"Madrid 1870 (Madrid) / Spain LCC",
"+proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669561 +pm=madrid +units=m +no_defs",
"Spain",
"Madrid 1870",
),
(
25830,
"ETRS89 / UTM zone 30N",
"+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs",
"Spain / Portugal (6°W to 0°)",
"ETRS89",
),
(
25831,
"ETRS89 / UTM zone 31N",
"+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs",
"Spain East (0° to 6°E)",
"ETRS89",
),
(
3763,
"ETRS89 / Portugal TM06",
"+proj=tmerc +lat_0=39.6682583 +lon_0=-8.1331083 +k=1 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Portugal",
"ETRS89",
),
(
28992,
"Amersfoort / RD New",
"+proj=sterea +lat_0=52.1561605555556 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs",
"Netherlands",
"Amersfoort",
),
(
31370,
"Belge 1972 / Belgian Lambert 72",
"+proj=lcc +lat_1=51.1666672333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.36748666666667 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +units=m +no_defs",
"Belgium",
"Belge 1972",
),
(
3812,
"ETRS89 / Belgian Lambert 2008",
"+proj=lcc +lat_1=49.8333333 +lat_2=51.1666667 +lat_0=50.7978 +lon_0=4.3592 +x_0=649328 +y_0=665262 +ellps=GRS80 +units=m +no_defs",
"Belgium",
"ETRS89",
),
(
31287,
"MGI / Austria Lambert",
"+proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.3333333 +x_0=400000 +y_0=400000 +ellps=bessel +units=m +no_defs",
"Austria",
"MGI",
),
(
31254,
"MGI / Austria GK West",
"+proj=tmerc +lat_0=0 +lon_0=10.3333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +units=m +no_defs",
"Austria West",
"MGI",
),
(
31255,
"MGI / Austria GK Central",
"+proj=tmerc +lat_0=0 +lon_0=13.3333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +units=m +no_defs",
"Austria Central",
"MGI",
),
(
31256,
"MGI / Austria GK East",
"+proj=tmerc +lat_0=0 +lon_0=16.3333333 +k=1 +x_0=0 +y_0=-5000000 +ellps=bessel +units=m +no_defs",
"Austria East",
"MGI",
),
(
5514,
"S-JTSK / Krovak East North",
"+proj=krovak +lat_0=49.5 +lon_0=24.8333333 +alpha=30.2881397527778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs",
"Czech Republic / Slovakia",
"S-JTSK",
),
(
2100,
"GGRS87 / Greek Grid",
"+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Greece",
"GGRS87",
),
(
29902,
"TM65 / Irish Grid",
"+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.448 +units=m +no_defs",
"Ireland",
"TM65",
),
(
29903,
"TM75 / Irish Grid",
"+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.448 +units=m +no_defs",
"Ireland",
"TM75",
),
(
2157,
"IRENET95 / Irish Transverse Mercator",
"+proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.99982 +x_0=600000 +y_0=750000 +ellps=GRS80 +units=m +no_defs",
"Ireland",
"IRENET95",
),
(
32632,
"WGS 84 / UTM zone 32N",
"+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs",
"Norway (6°E to 12°E)",
"WGS84",
),
(
2180,
"ETRS89 / Poland CS2000 zone 5",
"+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Poland",
"ETRS89",
),
(
2176,
"ETRS89 / Poland CS2000 zone 5",
"+proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Poland zone 5",
"ETRS89",
),
(
2177,
"ETRS89 / Poland CS2000 zone 6",
"+proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Poland zone 6",
"ETRS89",
),
(
2178,
"ETRS89 / Poland CS2000 zone 7",
"+proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Poland zone 7",
"ETRS89",
),
(
2179,
"ETRS89 / Poland CS2000 zone 8",
"+proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Poland zone 8",
"ETRS89",
),
(
3844,
"Pulkovo 1942(58) / Stereo70",
"+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defs",
"Romania",
"Pulkovo 1942(58)",
),
(
5253,
"TUREF / TM27",
"+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Turkey zone 27",
"TUREF",
),
(
5254,
"TUREF / TM30",
"+proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Turkey zone 30",
"TUREF",
),
(
5255,
"TUREF / TM33",
"+proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Turkey zone 33",
"TUREF",
),
(
5256,
"TUREF / TM36",
"+proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Turkey zone 36",
"TUREF",
),
(
5257,
"TUREF / TM39",
"+proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Turkey zone 39",
"TUREF",
),
(
5258,
"TUREF / TM42",
"+proj=tmerc +lat_0=0 +lon_0=42 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Turkey zone 42",
"TUREF",
),
(
5259,
"TUREF / TM45",
"+proj=tmerc +lat_0=0 +lon_0=45 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs",
"Turkey zone 45",
"TUREF",
),
];
for &(code, name, proj_string, area, datum) in european_grids {
db.add_definition(EpsgDefinition {
code,
name: name.to_string(),
proj_string: proj_string.to_string(),
wkt: None,
crs_type: CrsType::Projected,
area_of_use: area.to_string(),
unit: "metre".to_string(),
datum: datum.to_string(),
});
}
}