diff --git a/.appveyor.yml b/.appveyor.yml index e766c62f..74c3067f 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,4 +1,4 @@ -version: 4.19.{build} +version: 5.0.{build} configuration: Release platform: Any CPU environment: @@ -34,10 +34,12 @@ build_script: copy pkg\%NSI% installer - copy pkg\datums.csv installer - copy pkg\ellipsoids.csv installer + copy pkg\datums.csv installer + + copy pkg\pcs.csv installer + copy pkg\maps.txt installer copy licence.txt installer @@ -49,4 +51,4 @@ build_script: makensis.exe installer\%NSI% artifacts: -- path: installer\GPXSee-*.exe \ No newline at end of file +- path: installer\GPXSee-*.exe diff --git a/gpxsee.pro b/gpxsee.pro index adb2cd25..eddee576 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -1,5 +1,5 @@ TARGET = GPXSee -VERSION = 4.19 +VERSION = 5.0 QT += core \ gui \ network @@ -87,6 +87,11 @@ HEADERS += src/config.h \ src/map/atlas.h \ src/map/matrix.h \ src/map/misc.h \ + src/map/geotiff.h \ + src/map/pcs.h \ + src/map/transform.h \ + src/map/mapfile.h \ + src/map/tifffile.h \ src/data/graph.h \ src/data/poi.h \ src/data/waypoint.h \ @@ -163,13 +168,17 @@ SOURCES += src/main.cpp \ src/map/matrix.cpp \ src/map/ellipsoid.cpp \ src/map/datum.cpp \ - src/map/projection.cpp \ src/map/mercator.cpp \ src/map/transversemercator.cpp \ src/map/utm.cpp \ src/map/lambertconic.cpp \ src/map/albersequal.cpp \ src/map/lambertazimuthal.cpp \ + src/map/geotiff.cpp \ + src/map/pcs.cpp \ + src/map/transform.cpp \ + src/map/mapfile.cpp \ + src/map/tifffile.cpp \ src/data/data.cpp \ src/data/poi.cpp \ src/data/track.cpp \ @@ -182,7 +191,8 @@ SOURCES += src/main.cpp \ src/data/fitparser.cpp \ src/data/igcparser.cpp \ src/data/nmeaparser.cpp \ - src/data/str2int.cpp + src/data/str2int.cpp \ + src/map/projection.cpp RESOURCES += gpxsee.qrc TRANSLATIONS = lang/gpxsee_cs.ts \ lang/gpxsee_sv.ts \ @@ -198,7 +208,8 @@ macx { icons/nmea.icns \ pkg/maps.txt \ pkg/ellipsoids.csv \ - pkg/datums.csv + pkg/datums.csv \ + pkg/pcs.csv APP_RESOURCES.path = Contents/Resources QMAKE_BUNDLE_DATA += APP_RESOURCES } diff --git a/pkg/datums.csv b/pkg/datums.csv index 664af133..2bf762d1 100644 --- a/pkg/datums.csv +++ b/pkg/datums.csv @@ -1,123 +1,283 @@ -Adindan,4201,5,-162,-12,206 -Afgooye,4205,15,-43,-163,45 -Ain el Abd 1970,4204,14,-150,-251,-2 -Anna 1 Astro 1965,4708,2,-491,-22,435 -Arc 1950,4209,5,-143,-90,-294 -Arc 1960,4210,5,-160,-8,-300 -Ascension Island 1958,4712,14,-207,107,52 -Astro B4 Sorol Atoll,4707,14,114,-116,-333 -Astro Beacon 1945,4709,14,145,75,-272 -Astro DOS 71/4,4710,14,-320,550,-494 -Astronomic Stn 1952,4711,14,124,-234,-25 -Australian Geodetic 1966,4202,2,-133,-48,148 -Australian Geodetic 1984,4203,2,-134,-48,149 -Australian Geocentric 1994 (GDA94),4283,11,0,0,0 -Austrian,4312,3,594,84,471 -Bellevue (IGN),4714,14,-127,-769,472 -Bermuda 1957,4216,4,-73,213,296 -Bogota Observatory,4218,14,307,304,-318 -Campo Inchauspe,4221,14,-148,136,90 -Canton Astro 1966,4716,14,298,-304,-375 -Cape,4222,5,-136,-108,-292 -Cape Canaveral,4717,4,-2,150,181 -Carthage,4223,5,-263,6,431 -CH-1903,4149,3,674,15,405 -Chatham 1971,4672,14,175,-38,113 -Chua Astro,4224,14,-134,229,-29 -Corrego Alegre,4225,14,-206,172,-6 -Djakarta (Batavia),4211,3,-377,681,-50 -DOS 1968,,14,230,-199,-752 -Easter Island 1967,4719,14,211,147,111 -Egypt,,14,-130,-117,-151 -European 1950,4230,14,-87,-98,-121 -European 1950 (Mean France),,14,-87,-96,-120 -European 1950 (Spain and Portugal),,14,-84,-107,-120 -European 1979,4668,14,-86,-98,-119 -Finland Hayford,4123,14,-78,-231,-97 -Gandajika Base,4233,14,-133,-321,50 -Geodetic Datum 1949,4272,14,84,-22,209 -GGRS 87,4121,11,-199.87,74.79,246.62 -Guam 1963,4675,4,-100,-248,259 -GUX 1 Astro,4718,14,252,-209,-751 -Hartebeeshoek94,4148,20,0,0,0 -Hermannskogel,3906,3,653,-212,449 -Hjorsey 1955,4658,14,-73,46,-86 -Hong Kong 1963,4739,14,-156,-271,-189 -Hu-Tzu-Shan,4236,14,-634,-549,-201 -Indian Bangladesh,4682,6,289,734,257 -Indian Thailand,4240,6,214,836,303 -Israeli,4281,23,-235,-85,264 -Ireland 1965,4299,1,506,-122,611 -ISTS 073 Astro 1969,4724,14,208,-435,-229 -Johnston Island,4725,14,191,-77,-204 -Kandawala,4244,6,-97,787,86 -Kerguelen Island,4698,14,145,-187,103 -Kertau 1948,4245,7,-11,851,5 -L.C. 5 Astro,4726,4,42,124,147 -Liberia 1964,4251,5,-90,40,88 -Luzon Mindanao,,4,-133,-79,-72 -Luzon Philippines,4253,4,-133,-77,-51 -Mahe 1971,4256,5,41,-220,-134 -Marco Astro,4616,14,-289,-124,60 -Massawa,4262,3,639,405,60 -Merchich,4261,5,31,146,47 -Midway Astro 1961,4727,14,912,-58,1227 -Minna,4263,5,-92,-93,122 -NAD27 Alaska,,4,-5,135,172 -NAD27 Bahamas,,4,-4,154,178 -NAD27 Canada,,4,-10,158,187 -NAD27 Canal Zone,,4,0,125,201 -NAD27 Caribbean,,4,-7,152,178 -NAD27 Central,,4,0,125,194 -NAD27 CONUS,,4,-8,160,176 -NAD27 Cuba,,4,-9,152,178 -NAD27 Greenland,,4,11,114,195 -NAD27 Mexico,,4,-12,130,190 -NAD27 San Salvador,,4,1,140,165 -NAD83,4269,11,0,0,0 -Nahrwn Masirah Ilnd,,5,-247,-148,369 -Nahrwn Saudi Arbia,,5,-231,-196,482 -Nahrwn United Arab,,5,-249,-156,381 -Naparima BWI,4271,14,-2,374,172 -NGO1948,4273,27,315,-217,528 -NTF France,4275,24,-168,-60,320 -Norsk,4817,27,278,93,474 -NZGD1949,4272,14,84,-22,209 -NZGD2000,4167,20,0,0,0 -Observatorio 1966,4182,14,-425,-169,81 -Old Egyptian,4229,12,-130,110,-13 -Old Hawaiian,4135,4,61,-285,-181 -Oman,4232,5,-346,-1,224 -Ord Srvy Grt Britn,4277,0,375,-111,431 -Pico De Las Nieves,4728,14,-307,-92,127 -Pitcairn Astro 1967,4729,14,185,165,42 -Potsdam Rauenberg DHDN,4314,3,606,23,413 -Prov So Amrican 1956,4248,14,-288,175,-376 -Prov So Chilean 1963,4254,14,16,196,93 -Puerto Rico,4139,4,11,72,-101 -Pulkovo 1942 (1),4284,15,28,-130,-95 -Pulkovo 1942 (2),4284,15,28,-130,-95 -Qatar National,4285,14,-128,-283,22 -Qornoq,4287,14,164,138,-189 -Reunion,4626,14,94,-948,-1262 -Rijksdriehoeksmeting,4289,3,593,26,478 -Rome 1940,4806,14,-225,-65,9 -RT 90,4124,3,498,-36,568 -S42,4179,15,28,-121,-77 -Santo (DOS),4730,14,170,42,84 -Sao Braz,4184,14,-203,141,53 -Sapper Hill 1943,4292,14,-355,16,74 -Schwarzeck,4293,21,616,97,-251 -South American 1969,4291,16,-57,1,-41 -South Asia,,8,7,-10,-26 -Southeast Base,4615,14,-499,-249,314 -Southwest Base,4183,14,-104,167,-38 -Timbalai 1948,4298,6,-689,691,-46 -Tokyo,4301,3,-128,481,664 -Tristan Astro 1968,4734,14,-632,438,-609 -Viti Levu 1916,4731,5,51,391,-36 -Wake-Eniwetok 1960,4732,13,101,52,-39 -WGS 72,4322,19,0,0,5 -WGS 84,4326,20,0,0,0 -Yacare,4309,14,-155,171,37 -Zanderij,4311,14,-265,120,-358 +TWD97,3824,7019,0,0,0 +IGRS,3889,7019,0,0,0 +Hermannskogel,3906,7004,653,-212,449 +MOLDREF99,4023,7019,0,0,0 +RGRDC 2005,4046,7019,0,0,0 +REGCAN95,4081,7019,0,0,0 +GGRS 87,4121,7019,-199.87,74.79,246.62 +Finland Hayford,4123,7022,-78,-231,-97 +RT 90,4124,7004,498,-36,568 +Samboja,4125,7004,-404.78,685.68,45.47 +Tete,4127,7008,-80,-100,-228 +Indian 1960,4131,7015,198,881,317 +FD58,4132,7012,-241.54,-163.64,396.06 +Old Hawaiian,4135,7008,61,-285,-181 +Puerto Rico,4139,7008,11,72,-101 +NAD83(CSRS98),4140,7019,0,0,0 +Israel 1993,4141,7019,-48,55,52 +Locodjo 1965,4142,7012,-125,53,467 +Abidjan 1987,4143,7012,-124.76,53,466.79 +Kalianpur 1937,4144,7015,214,804,268 +Kalianpur 1962,4145,7044,283,682,231 +Kalianpur 1975,4146,7045,295,736,257 +Hanoi 1972,4147,7024,-17.51,-108.32,-62.39 +Hartebeeshoek94,4148,7030,0,0,0 +CH-1903,4149,7004,674,15,405 +NAD83(HARN),4152,7019,0,0,0 +ED50(ED77),4154,7022,-117,-132,-164 +Dabola 1981,4155,7011,-83,37,124 +Naparima 1955,4158,7022,-0.465,372.095,171.736 +ELD79,4159,7022,-115.8543,-99.0583,-152.4616 +Pampa del Castillo,4161,7022,27.5,14,186.4 +Yemen NGN96,4163,7030,0,0,0 +South Yemen,4164,7024,-76,-138,67 +Bissau,4165,7022,-173,253,27 +NZGD2000,4167,7030,0,0,0 +Accra,4168,7029,-199,32,322 +American Samoa 1962,4169,7008,-115,118,426 +SIRGAS 1995,4170,7019,0,0,0 +RGF93,4171,7019,0,0,0 +IRENET95,4173,7019,0,0,0 +Sierra Leone 1968,4175,7012,-88,4,101 +Pulkovo 1942(83),4178,7024,26,-121,-78 +S42,4179,7024,28,-121,-77 +EST97,4180,7019,0,0,0 +Observatorio 1966,4182,7022,-425,-169,81 +Southwest Base,4183,7022,-104,167,-38 +Sao Braz,4184,7022,-203,141,53 +REGVEN,4189,7019,0,0,0 +POSGAR 98,4190,7019,0,0,0 +Douala 1948,4192,7022,-206.1,-174.7,-87.7 +Manoca 1962,4193,7011,-70.9,-151.8,-41.4 +Qornoq 1927,4194,7022,164,138,-189 +Adindan,4201,7012,-162,-12,206 +Australian Geodetic 1966,4202,7003,-133,-48,148 +Australian Geodetic 1984,4203,7003,-134,-48,149 +Ain el Abd 1970,4204,7022,-150,-251,-2 +Afgooye,4205,7024,-43,-163,45 +Lisbon,4207,7022,-304.046,-60.576,103.64 +Aratu,4208,7022,-151.99,287.04,-147.45 +Arc 1950,4209,7012,-143,-90,-294 +Arc 1960,4210,7012,-160,-8,-300 +Djakarta (Batavia),4211,7004,-377,681,-50 +Barbados 1938,4212,7012,31.95,300.99,419.19 +Beduaram,4213,7011,-106,-87,188 +Beijing 1954,4214,7024,15.8,-154.4,-82.3 +Bermuda 1957,4216,7008,-73,213,296 +Bogota Observatory,4218,7022,307,304,-318 +Camacupa,4220,7012,-50.9,-347.6,-231 +Campo Inchauspe,4221,7022,-148,136,90 +Cape,4222,7012,-136,-108,-292 +Carthage,4223,7012,-263,6,431 +Chua Astro,4224,7022,-134,229,-29 +Corrego Alegre,4225,7022,-206,172,-6 +Deir ez Zor,4227,7011,-190.421,8.532,238.69 +Old Egyptian,4229,7020,-130,110,-13 +European 1950,4230,7022,-87,-98,-121 +Oman,4232,7012,-346,-1,224 +Gandajika Base,4233,7022,-133,-321,50 +Hu-Tzu-Shan,4236,7022,-634,-549,-201 +ID74,4238,7021,-24,-15,5 +Indian 1954,4239,7015,217,823,299 +Indian Thailand,4240,7015,214,836,303 +JAD69,4242,7008,70,207,389.5 +Kandawala,4244,7015,-97,787,86 +Kertau 1948,4245,7018,-11,851,5 +KOC,4246,7012,-294.7,-200.1,525.5 +La Canoa,4247,7022,-273.5,110.6,-357.9 +Prov So Amrican 1956,4248,7022,-288,175,-376 +Leigon,4250,7012,-130,29,364 +Liberia 1964,4251,7012,-90,40,88 +Luzon Philippines,4253,7008,-133,-77,-51 +Prov So Chilean 1963,4254,7022,16,196,93 +Mahe 1971,4256,7012,41,-220,-134 +ETRS89,4258,7019,0,0,0 +Malongo 1987,4259,7022,-254.1,-5.36,-100.29 +Merchich,4261,7012,31,146,47 +Massawa,4262,7004,639,405,60 +Minna,4263,7012,-92,-93,122 +Mhast,4264,7022,-252.95,-4.11,-96.38 +M'poraloko,4266,7011,-74,-130,42 +NAD27 CONUS,4267,7008,-8,160,176 +NAD83,4269,7019,0,0,0 +Nahrwan 1967,4270,7012,-249,-156,381 +Naparima BWI,4271,7022,-2,374,172 +Geodetic Datum 1949,4272,7022,84,-22,209 +NZGD1949,4272,7022,84,-22,209 +NGO1948,4273,7005,315,-217,528 +Datum 73,4274,7022,-223.237,110.193,36.649 +NTF France,4275,7011,-168,-60,320 +Ord Srvy Grt Britn,4277,7001,375,-111,431 +Israeli,4281,7010,-235,-85,264 +Pointe Noire,4282,7011,-148,51,-291 +Australian Geocentric 1994 (GDA94),4283,7019,0,0,0 +Pulkovo 1942 (1),4284,7024,28,-130,-95 +Qatar National,4285,7022,-128,-283,22 +Qornoq,4287,7022,164,138,-189 +Rijksdriehoeksmeting,4289,7004,593,26,478 +South American 1969,4291,7036,-57,1,-41 +Sapper Hill 1943,4292,7022,-355,16,74 +Schwarzeck,4293,7046,616,97,-251 +Tananarive,4297,7022,-189,-242,-91 +Timbalai 1948,4298,7015,-689,691,-46 +Ireland 1965,4299,7002,506,-122,611 +Tokyo,4301,7004,-128,481,664 +Voirol 1875,4304,7011,-73,-247,227 +Yacare,4309,7022,-155,171,37 +Yoff,4310,7011,-30,190,89 +Zanderij,4311,7022,-265,120,-358 +Austrian,4312,7004,594,84,471 +Potsdam Rauenberg DHDN,4314,7004,606,23,413 +Conakry 1905,4315,7011,-23,259,-9 +NGN,4318,7030,-3.2,-5.7,2.8 +KUDAMS,4319,7019,-20.8,11.3,2.4 +WGS 72,4322,7043,0,0,5 +WGS 84,4326,7030,0,0,0 +RGSPM06,4463,7019,0,0,0 +RGM04,4470,7019,0,0,0 +Cadastre 1997,4475,7022,-381.788,-57.501,-256.673 +Mexico ITRF92,4483,7019,0,0,0 +RRAF 1991,4558,7019,0,0,0 +Antigua 1943,4601,7012,-255,-15,71 +Dominica 1945,4602,7012,725,685,536 +Grenada 1953,4603,7012,72,213.7,93 +Montserrat 1958,4604,7012,174,359,365 +St. Kitts 1955,4605,7012,9,183,236 +St. Lucia 1955,4606,7012,-149,128,296 +St. Vincent 1945,4607,7012,195.671,332.517,274.607 +JGD2000,4612,7019,0,0,0 +Segara,4613,7004,-403,684,41 +Southeast Base,4615,7022,-499,-249,314 +Marco Astro,4616,7022,-289,-124,60 +NAD83(CSRS),4617,7019,0,0,0 +SAD69,4618,7050,-66.87,4.37,-38.52 +SWEREF99,4619,7019,0,0,0 +Fort Marigot,4621,7022,137,248,-430 +Guadeloupe 1948,4622,7022,-467,-16,-300 +CSG67,4623,7022,-186,230,110 +RGFG95,4624,7019,0,0,0 +Martinique 1938,4625,7022,186,482,151 +Reunion,4626,7022,94,-948,-1262 +RGR92,4627,7019,0,0,0 +Tahiti 52,4628,7022,162,117,154 +IGN72 Nuku Hiva,4630,7022,84,274,65 +K0 1949,4631,7022,145,-187,103 +Combani 1950,4632,7022,-382,-59,-262 +IGN56 Lifou,4633,7022,335.47,222.58,-230.94 +IGN72 Grand Terre,4634,7022,-13,-348,292 +Saint Pierre et Miquelon 1950,4638,7008,30,430,368 +MOP78,4639,7022,253,-132,-127 +RRAF 1991,4640,7030,0,0,0 +IGN53 Mare,4641,7022,287.58,177.78,-135.41 +ST84 Ile des Pins,4642,7022,-13,-348,292 +NEA74 Noumea,4644,7022,-10.18,-350.43,291.37 +RGNC 1991,4645,7022,0,0,0 +Grand Comoros,4646,7022,-963,510,-359 +Hjorsey 1955,4658,7022,-73,46,-86 +ISN93,4659,7019,0,0,0 +LKS92,4661,7019,0,0,0 +IGN72 Grande Terre,4662,7022,-11.64,-348.6,291.98 +Porto Santo 1995,4663,7022,-502.862,-247.438,312.724 +Azores Oriental 1995,4664,7022,-204.619,140.176,55.226 +Azores Central 1995,4665,7022,-106.226,166.366,-37.893 +European 1979,4668,7022,-86,-98,-119 +LKS94,4669,7019,0,0,0 +IGM95,4670,7030,0,0,0 +Chatham 1971,4672,7022,175,-38,113 +SIRGAS 2000,4674,7019,0,0,0 +Guam 1963,4675,7008,-100,-248,259 +Indian Bangladesh,4682,7015,289,734,257 +MAGNA-SIRGAS,4686,7019,0,0,0 +Maupiti 83,4692,7022,217.037,86.959,23.956 +Nakhl-e Ghanem,4693,7030,0,-0.15,0.68 +POSGAR 94,4694,7030,0,0,0 +Katanga 1955,4695,7008,-103.746,-9.614,-255.95 +Kerguelen Island,4698,7022,145,-187,103 +Le Pouce 1934,4699,7012,-770.1,158.4,-498.2 +IGCB 1955,4701,7012,-79.9,-158,-168.9 +Mauritania 1999,4702,7019,0,0,0 +Egypt Gulf of Suez S-650 TL,4706,7020,-146.21,112.63,4.05 +Astro B4 Sorol Atoll,4707,7022,114,-116,-333 +Anna 1 Astro 1965,4708,7003,-491,-22,435 +Astro Beacon 1945,4709,7022,145,75,-272 +Astro DOS 71/4,4710,7022,-320,550,-494 +Astronomic Stn 1952,4711,7022,124,-234,-25 +Ascension Island 1958,4712,7022,-207,107,52 +Bellevue (IGN),4714,7022,-127,-769,472 +Canton Astro 1966,4716,7022,298,-304,-375 +Cape Canaveral,4717,7008,-2,150,181 +GUX 1 Astro,4718,7022,252,-209,-751 +Easter Island 1967,4719,7022,211,147,111 +Fiji 1956,4721,7022,265.025,384.929,-194.046 +ISTS 073 Astro 1969,4724,7022,208,-435,-229 +Johnston Island,4725,7022,191,-77,-204 +L.C. 5 Astro,4726,7008,42,124,147 +Midway Astro 1961,4727,7022,912,-58,1227 +Pico De Las Nieves,4728,7022,-307,-92,127 +Pitcairn Astro 1967,4729,7022,185,165,42 +Santo (DOS),4730,7022,170,42,84 +Viti Levu 1916,4731,7012,51,391,-36 +Wake-Eniwetok 1960,4732,7053,101,52,-39 +Tristan Astro 1968,4734,7022,-632,438,-609 +Korea 2000,4737,7019,0,0,0 +Hong Kong 1963,4739,7022,-156,-271,-189 +Karbala 1979,4743,7012,70.995,-335.916,262.898 +Nahrwan 1934,4744,7012,-242.2,-144.9,370.3 +GR96,4747,7019,0,0,0 +RGNC91-93,4749,7019,0,0,0 +ST87 Ouvea,4750,7030,-56.263,16.136,-22.856 +LGD2006,4754,7022,-208.4058,-109.8777,-2.5764 +DGN95,4755,7030,0,0,0 +JAD2001,4758,7030,0,0,0 +NAD83(NSRS2007),4759,7019,0,0,0 +HTRS96,4761,7019,0,0,0 +BDA2000,4762,7030,0,0,0 +Pitcairn 2006,4763,7030,0,0,0 +RSRGD2000,4764,7019,0,0,0 +Slovenia 1996,4765,7019,0,0,0 +Lisbon (Lisbon),4803,7022,-304.046,-60.576,103.64 +MGI (Ferro),4805,7004,682,-203,480 +Rome 1940,4806,7022,-225,-65,9 +NTF (Paris),4807,7011,-168,-60,320 +Norsk,4817,7005,278,93,474 +PTRA08,5013,7019,0,0,0 +TUREF,5252,7019,0,0,0 +DRUKREF 03,5264,7019,0,0,0 +ISN2004,5324,7019,0,0,0 +POSGAR 2007,5340,7019,0,0,0 +MARGEN,5354,7019,0,0,0 +SIRGAS-Chile,5360,7019,0,0,0 +CR05,5365,7030,0,0,0 +Peru96,5373,7019,0,0,0 +SIRGAS-ROU98,5381,7030,0,0,0 +Ocotepeque 1935,5451,7008,205,96,-98 +RGAF09,5489,7019,0,0,0 +SAD69(96),5527,7050,-67.35,3.88,-38.22 +PNG94,5546,7019,0,0,0 +FEH2010,5593,7019,0,0,0 +CIGD11,6135,7019,0,0,0 +Mexico ITRF2008,6365,7019,0,0,0 +RDN2008,6706,7019,0,0,0 +South East Island 1943,6892,7012,-43.685,-179.785,-267.721 +ONGD14,7373,7019,0,0,0 +St. Helena Tritan,7881,7030,-0.077,0.079,0.086 +SHGD2015,7886,7019,0,0,0 +DOS 1968,,7022,230,-199,-752 +Egypt,,7022,-130,-117,-151 +European 1950 (Mean France),,7022,-87,-96,-120 +European 1950 (Spain and Portugal),,7022,-84,-107,-120 +Luzon Mindanao,,7008,-133,-79,-72 +NAD27 Alaska,,7008,-5,135,172 +NAD27 Bahamas,,7008,-4,154,178 +NAD27 Canada,,7008,-10,158,187 +NAD27 Canal Zone,,7008,0,125,201 +NAD27 Caribbean,,7008,-3,142,183 +NAD27 Central,,7008,0,125,194 +NAD27 Cuba,,7008,-9,152,178 +NAD27 Greenland,,7008,11,114,195 +NAD27 Mexico,,7008,-12,130,190 +NAD27 San Salvador,,7008,1,140,165 +Nahrwn Masirah Ilnd,,7012,-247,-148,369 +Nahrwn Saudi Arbia,,7012,-231,-196,482 +Nahrwn United Arab,,7012,-249,-156,381 +Pulkovo 1942 (2),,7024,28,-130,-95 diff --git a/pkg/ellipsoids.csv b/pkg/ellipsoids.csv index b761a2e7..a8ff6975 100644 --- a/pkg/ellipsoids.csv +++ b/pkg/ellipsoids.csv @@ -1,30 +1,25 @@ -0,Airy 1830,6377563.396,299.3249646 -1,Modified Airy,6377340.189,299.3249646 -2,Australian National,6378160.0,298.25 -3,Bessel 1841,6377397.155,299.1528128 -4,Clarke 1866,6378206.4,294.9786982 -5,Clarke 1880,6378249.145,293.465 -6,Everest (India 1830),6377276.345,300.8017 -7,Everest (1948),6377304.063,300.8017 -8,Modified Fischer 1960,6378155.0,298.3 -9,Everest (Pakistan),6377309.613,300.8017 -10,Indonesian 1974,6378160.0,298.247 -11,GRS 80,6378137.0,298.257222101 -12,Helmert 1906,6378200.0,298.3 -13,Hough 1960,6378270.0,297.0 -14,International 1924,6378388.0,297.0 -15,Krassovsky 1940,6378245.0,298.3 -16,South American 1969,6378160.0,298.25 -17,Everest (Malaysia 1969),6377295.664,300.8017 -18,Everest (Sabah Sarawak),6377298.556,300.8017 -19,WGS 72,6378135.0,298.26 -20,WGS 84,6378137.0,298.257223563 -21,Bessel 1841 (Namibia),6377483.865,299.1528128 -22,Everest (India 1956),6377301.243,300.8017 -23,Clarke 1880 Palestine,6378300.789,293.466 -24,Clarke 1880 IGN,6378249.2,293.466021 -25,Hayford 1909,6378388.0,296.959263 -26,Clarke 1858,6378350.87,294.26 -27,Bessel 1841 (Norway),6377492.0176,299.1528 -28,Plessis 1817 (France),6376523.0,308.6409971 -29,Hayford 1924,6378388.0,297.0 +Airy 1830,7001,6377563.396,299.3249646 +Modified Airy,7002,6377340.189,299.3249646 +Australian National,7003,6378160.0,298.25 +Bessel 1841,7004,6377397.155,299.1528128 +Bessel 1841 (Norway),7005,6377492.0176,299.1528 +Clarke 1866,7008,6378206.4,294.9786982 +Clarke 1880 (Palestine),7010,6378300.789,293.466 +Clarke 1880 (IGN),7011,6378249.2,293.466021 +Clarke 1880,7012,6378249.145,293.465 +Everest 1830 (1937 Adjustment),7015,6377276.345,300.8017 +Everest 1830 Modified,7018,6377304.063,300.8017 +GRS 80,7019,6378137.0,298.257222101 +Helmert 1906,7020,6378200.0,298.3 +Indonesian,7021,6378160.0,298.247 +International 1924,7022,6378388.0,297.0 +Krassovsky 1940,7024,6378245.0,298.3 +War Office,7029,6378300.0,296.0 +WGS 84,7030,6378137.0,298.257223563 +South American 1969,7036,6378160.0,298.25 +WGS 72,7043,6378135.0,298.26 +Everest 1830 (1962 Definition),7044,6377301.243,300.8017255 +Everest 1830 (1975 Definition),7045,6377299.151,300.8017255 +Bessel 1841 (Namibia),7046,6377483.865,299.1528128 +GRS 67 Modified,7050,6378160.0,298.25 +Hough 1960,7053,6378270.0,297.0 diff --git a/pkg/gpxsee.nsi b/pkg/gpxsee.nsi index 857a73cc..c0218013 100644 --- a/pkg/gpxsee.nsi +++ b/pkg/gpxsee.nsi @@ -5,7 +5,7 @@ ; The name of the installer Name "GPXSee" ; Program version -!define VERSION "4.19" +!define VERSION "5.0" ; The file to write OutFile "GPXSee-${VERSION}.exe" @@ -86,6 +86,7 @@ Section "GPXSee" SEC_APP File "maps.txt" File "ellipsoids.csv" File "datums.csv" + File "pcs.csv" ; Create start menu entry and add links SetShellVarContext all diff --git a/pkg/gpxsee64.nsi b/pkg/gpxsee64.nsi index ef14a2c7..7ab59e59 100644 --- a/pkg/gpxsee64.nsi +++ b/pkg/gpxsee64.nsi @@ -5,7 +5,7 @@ ; The name of the installer Name "GPXSee" ; Program version -!define VERSION "4.19" +!define VERSION "5.0" ; The file to write OutFile "GPXSee-${VERSION}_x64.exe" @@ -93,6 +93,7 @@ Section "GPXSee" SEC_APP File "maps.txt" File "ellipsoids.csv" File "datums.csv" + File "pcs.csv" ; Create start menu entry and add links SetShellVarContext all diff --git a/pkg/pcs.csv b/pkg/pcs.csv new file mode 100644 index 00000000..ada19f24 --- /dev/null +++ b/pkg/pcs.csv @@ -0,0 +1,3102 @@ +Antigua 1943 / British West Indies Grid,2001,4601,19942,9807,0,-62,0.9995,400000,0,, +Dominica 1945 / British West Indies Grid,2002,4602,19942,9807,0,-62,0.9995,400000,0,, +Grenada 1953 / British West Indies Grid,2003,4603,19942,9807,0,-62,0.9995,400000,0,, +Montserrat 1958 / British West Indies Grid,2004,4604,19942,9807,0,-62,0.9995,400000,0,, +St. Kitts 1955 / British West Indies Grid,2005,4605,19942,9807,0,-62,0.9995,400000,0,, +St. Lucia 1955 / British West Indies Grid,2006,4606,19942,9807,0,-62,0.9995,400000,0,, +St. Vincent 45 / British West Indies Grid,2007,4607,19942,9807,0,-62,0.9995,400000,0,, +NAD83(CSRS98) / UTM zone 19N,2037,4140,16019,9807,0,-69,0.9996,500000,0,, +NAD83(CSRS98) / UTM zone 20N,2038,4140,16020,9807,0,-63,0.9996,500000,0,, +Israel 1993 / Israeli TM Grid,2039,4141,18204,9807,31.4403817,35.1216261,1.0000067,219529.584,626907.39,, +Locodjo 1965 / UTM zone 30N,2040,4142,16030,9807,0,-3,0.9996,500000,0,, +Abidjan 1987 / UTM zone 30N,2041,4143,16030,9807,0,-3,0.9996,500000,0,, +Locodjo 1965 / UTM zone 29N,2042,4142,16029,9807,0,-9,0.9996,500000,0,, +Abidjan 1987 / UTM zone 29N,2043,4143,16029,9807,0,-9,0.9996,500000,0,, +Hanoi 1972 / Gauss-Kruger zone 18,2044,4147,16218,9807,0,105,1,18500000,0,, +Hanoi 1972 / Gauss-Kruger zone 19,2045,4147,16219,9807,0,111,1,19500000,0,, +ED50(ED77) / UTM zone 38N,2058,4154,16038,9807,0,45,0.9996,500000,0,, +ED50(ED77) / UTM zone 39N,2059,4154,16039,9807,0,51,0.9996,500000,0,, +ED50(ED77) / UTM zone 40N,2060,4154,16040,9807,0,57,0.9996,500000,0,, +ED50(ED77) / UTM zone 41N,2061,4154,16041,9807,0,63,0.9996,500000,0,, +Dabola 1981 / UTM zone 28N,2063,4315,16028,9807,0,-15,0.9996,500000,0,, +Dabola 1981 / UTM zone 29N,2064,4315,16029,9807,0,-9,0.9996,500000,0,, +Naparima 1955 / UTM zone 20N,2067,4158,16020,9807,0,-63,0.9996,500000,0,, +ELD79 / Libya zone 5,2068,4159,18240,9807,0,9,0.9999,200000,0,, +ELD79 / Libya zone 6,2069,4159,18241,9807,0,11,0.9999,200000,0,, +ELD79 / Libya zone 7,2070,4159,18242,9807,0,13,0.9999,200000,0,, +ELD79 / Libya zone 8,2071,4159,18243,9807,0,15,0.9999,200000,0,, +ELD79 / Libya zone 9,2072,4159,18244,9807,0,17,0.9999,200000,0,, +ELD79 / Libya zone 10,2073,4159,18245,9807,0,19,0.9999,200000,0,, +ELD79 / Libya zone 11,2074,4159,18246,9807,0,21,0.9999,200000,0,, +ELD79 / Libya zone 12,2075,4159,18247,9807,0,23,0.9999,200000,0,, +ELD79 / Libya zone 13,2076,4159,18248,9807,0,25,0.9999,200000,0,, +ELD79 / UTM zone 32N,2077,4159,16032,9807,0,9,0.9996,500000,0,, +ELD79 / UTM zone 33N,2078,4159,16033,9807,0,15,0.9996,500000,0,, +ELD79 / UTM zone 34N,2079,4159,16034,9807,0,21,0.9996,500000,0,, +ELD79 / UTM zone 35N,2080,4159,16035,9807,0,27,0.9996,500000,0,, +Pampa del Castillo / Argentina 2,2082,4161,18032,9807,-90,-69,1,2500000,0,, +Hito XVIII 1963 / Argentina 2,2083,4254,18032,9807,-90,-69,1,2500000,0,, +Hito XVIII 1963 / UTM zone 19S,2084,4254,16119,9807,0,-69,0.9996,500000,10000000,, +NAD27 / Cuba Norte,2085,4267,18061,9801,22.21,-81,0.99993602,500000,280296.016,, +NAD27 / Cuba Sur,2086,4267,18062,9801,20.43,-76.5,0.99994848,500000,229126.939,, +ELD79 / TM 12 NE,2087,4159,16412,9807,0,12,0.9996,500000,0,, +Carthage / TM 11 NE,2088,4223,16411,9807,0,11,0.9996,500000,0,, +Yemen NGN96 / UTM zone 38N,2089,4163,16038,9807,0,45,0.9996,500000,0,, +Yemen NGN96 / UTM zone 39N,2090,4163,16039,9807,0,51,0.9996,500000,0,, +South Yemen / Gauss Kruger zone 8,2091,4164,16208,9807,0,45,1,8500000,0,, +South Yemen / Gauss Kruger zone 9,2092,4164,16209,9807,0,51,1,9500000,0,, +Hanoi 1972 / GK 106 NE,2093,4147,16586,9807,0,106,1,500000,0,, +Bissau / UTM zone 28N,2095,4165,16028,9807,0,-15,0.9996,500000,0,, +GGRS87 / Greek Grid,2100,4121,19930,9807,0,24,0.9996,500000,0,, +NZGD2000 / Mount Eden 2000,2105,4167,17931,9807,-36.5247,174.4551,0.9999,400000,800000,, +NZGD2000 / Bay of Plenty 2000,2106,4167,17932,9807,-37.454,176.2758,1,400000,800000,, +NZGD2000 / Poverty Bay 2000,2107,4167,17933,9807,-38.3728,177.5308,1,400000,800000,, +NZGD2000 / Hawkes Bay 2000,2108,4167,17934,9807,-39.3903,176.4025,1,400000,800000,, +NZGD2000 / Taranaki 2000,2109,4167,17935,9807,-39.0808,174.134,1,400000,800000,, +NZGD2000 / Tuhirangi 2000,2110,4167,17936,9807,-39.3044,175.3824,1,400000,800000,, +NZGD2000 / Wanganui 2000,2111,4167,17937,9807,-40.1431,175.2917,1,400000,800000,, +NZGD2000 / Wairarapa 2000,2112,4167,17938,9807,-40.5531,175.385,1,400000,800000,, +NZGD2000 / Wellington 2000,2113,4167,17939,9807,-41.1804,174.4635,1,400000,800000,, +NZGD2000 / Collingwood 2000,2114,4167,17940,9807,-40.4253,172.4019,1,400000,800000,, +NZGD2000 / Nelson 2000,2115,4167,17941,9807,-41.1628,173.1757,1,400000,800000,, +NZGD2000 / Karamea 2000,2116,4167,17942,9807,-41.1723,172.0632,1,400000,800000,, +NZGD2000 / Buller 2000,2117,4167,17943,9807,-41.4838,171.3452,1,400000,800000,, +NZGD2000 / Grey 2000,2118,4167,17944,9807,-42.2001,171.3259,1,400000,800000,, +NZGD2000 / Amuri 2000,2119,4167,17945,9807,-42.412,173.0036,1,400000,800000,, +NZGD2000 / Marlborough 2000,2120,4167,17946,9807,-41.324,173.4807,1,400000,800000,, +NZGD2000 / Hokitika 2000,2121,4167,17947,9807,-42.531,170.5847,1,400000,800000,, +NZGD2000 / Okarito 2000,2122,4167,17948,9807,-43.0636,170.1539,1,400000,800000,, +NZGD2000 / Jacksons Bay 2000,2123,4167,17949,9807,-43.584,168.3622,1,400000,800000,, +NZGD2000 / Mount Pleasant 2000,2124,4167,17950,9807,-43.3526,172.4337,1,400000,800000,, +NZGD2000 / Gawler 2000,2125,4167,17951,9807,-43.4455,171.2138,1,400000,800000,, +NZGD2000 / Timaru 2000,2126,4167,17952,9807,-44.2407,171.0326,1,400000,800000,, +NZGD2000 / Lindis Peak 2000,2127,4167,17953,9807,-44.4406,169.2803,1,400000,800000,, +NZGD2000 / Mount Nicholas 2000,2128,4167,17954,9807,-45.0758,168.2355,1,400000,800000,, +NZGD2000 / Mount York 2000,2129,4167,17955,9807,-45.3349,167.4419,1,400000,800000,, +NZGD2000 / Observation Point 2000,2130,4167,17956,9807,-45.4858,170.3742,1,400000,800000,, +NZGD2000 / North Taieri 2000,2131,4167,17957,9807,-45.5141,170.1657,0.99996,400000,800000,, +NZGD2000 / Bluff 2000,2132,4167,17958,9807,-46.36,168.2034,1,400000,800000,, +NZGD2000 / UTM zone 58S,2133,4167,16158,9807,0,165,0.9996,500000,10000000,, +NZGD2000 / UTM zone 59S,2134,4167,16159,9807,0,171,0.9996,500000,10000000,, +NZGD2000 / UTM zone 60S,2135,4167,16160,9807,0,177,0.9996,500000,10000000,, +Accra / Ghana National Grid,2136,4168,19959,9807,4.4,-1,0.99975,900000,0,, +Accra / TM 1 NW,2137,4168,17001,9807,0,-1,0.9996,500000,0,, +NAD83(CSRS98) / SCoPQ zone 2,2139,4140,17700,9807,0,-55.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 3,2140,4140,17703,9807,0,-58.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 4,2141,4140,17704,9807,0,-61.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 5,2142,4140,17705,9807,0,-64.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 6,2143,4140,17706,9807,0,-67.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 7,2144,4140,17707,9807,0,-70.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 8,2145,4140,17708,9807,0,-73.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 9,2146,4140,17709,9807,0,-76.3,0.9999,304800,0,, +NAD83(CSRS98) / MTM zone 10,2147,4140,17710,9807,0,-79.3,0.9999,304800,0,, +NAD83(CSRS98) / UTM zone 21N,2148,4140,16021,9807,0,-57,0.9996,500000,0,, +NAD83(CSRS98) / UTM zone 18N,2149,4140,16018,9807,0,-75,0.9996,500000,0,, +NAD83(CSRS98) / UTM zone 17N,2150,4140,16017,9807,0,-81,0.9996,500000,0,, +NAD83(CSRS98) / UTM zone 13N,2151,4140,16013,9807,0,-105,0.9996,500000,0,, +NAD83(CSRS98) / UTM zone 12N,2152,4140,16012,9807,0,-111,0.9996,500000,0,, +NAD83(CSRS98) / UTM zone 11N,2153,4140,16011,9807,0,-117,0.9996,500000,0,, +RGF93 / Lambert-93,2154,4171,18085,9802,46.3,3,,700000,6600000,49,44 +American Samoa 1962 / American Samoa Lambert,2155,4169,15300,9801,-14.16,170,1,500000,0,, +NAD83(HARN) / UTM zone 59S,2156,4152,16159,9807,0,171,0.9996,500000,10000000,, +IRENET95 / Irish Transverse Mercator,2157,4173,19962,9807,53.3,-8,0.99982,600000,750000,, +IRENET95 / UTM zone 29N,2158,4173,16029,9807,0,-9,0.9996,500000,0,, +Sierra Leone 1968 / UTM zone 28N,2161,4175,16028,9807,0,-15,0.9996,500000,0,, +Sierra Leone 1968 / UTM zone 29N,2162,4175,16029,9807,0,-9,0.9996,500000,0,, +Locodjo 1965 / TM 5 NW,2164,4142,17005,9807,0,-5,0.9996,500000,0,, +Abidjan 1987 / TM 5 NW,2165,4143,17005,9807,0,-5,0.9996,500000,0,, +Pulkovo 1942(83) / Gauss Kruger zone 3,2166,4178,16263,9807,0,9,1,3500000,0,, +Pulkovo 1942(83) / Gauss Kruger zone 4,2167,4178,16264,9807,0,12,1,4500000,0,, +Pulkovo 1942(83) / Gauss Kruger zone 5,2168,4178,16265,9807,0,15,1,5500000,0,, +MGI / Slovenia Grid,2170,4312,19967,9807,0,15,0.9999,500000,0,, +Pulkovo 1942(58) / Poland zone V,2175,4179,18285,9807,0,18.573,0.999983,237000,-4700000,, +ETRS89 / Poland CS2000 zone 5,2176,4258,18305,9807,0,15,0.999923,5500000,0,, +ETRS89 / Poland CS2000 zone 6,2177,4258,18306,9807,0,18,0.999923,6500000,0,, +ETRS89 / Poland CS2000 zone 7,2178,4258,18307,9807,0,21,0.999923,7500000,0,, +ETRS89 / Poland CS2000 zone 8,2179,4258,18308,9807,0,24,0.999923,8500000,0,, +ETRS89 / Poland CS92,2180,4258,18300,9807,0,19,0.9993,500000,-5300000,, +Azores Occidental 1939 / UTM zone 25N,2188,4182,16025,9807,0,-33,0.9996,500000,0,, +Azores Central 1948 / UTM zone 26N,2189,4183,16026,9807,0,-27,0.9996,500000,0,, +Azores Oriental 1940 / UTM zone 26N,2190,4184,16026,9807,0,-27,0.9996,500000,0,, +ED50 / France EuroLambert,2192,4230,18086,9801,46.48,2.2014025,0.99987742,600000,2200000,, +NZGD2000 / New Zealand Transverse Mercator 2000,2193,4167,19971,9807,0,173,0.9996,1600000,10000000,, +American Samoa 1962 / American Samoa Lambert,2194,4169,15301,9801,-14.16,-170,1,500000,0,, +NAD83(HARN) / UTM zone 2S,2195,4152,16102,9807,0,-171,0.9996,500000,10000000,, +ETRS89 / Kp2000 Jutland,2196,4258,18401,9807,0,9.3,0.99995,200000,0,, +ETRS89 / Kp2000 Zealand,2197,4258,18402,9807,0,12,0.99995,500000,0,, +ETRS89 / Kp2000 Bornholm,2198,4258,18403,9807,0,15,1,900000,0,, +REGVEN / UTM zone 18N,2201,4189,16018,9807,0,-75,0.9996,500000,0,, +REGVEN / UTM zone 19N,2202,4189,16019,9807,0,-69,0.9996,500000,0,, +REGVEN / UTM zone 20N,2203,4189,16020,9807,0,-63,0.9996,500000,0,, +NAD27 / Tennessee,2204,4267,15302,9802,34.4,-86,,2000000,100000,35.15,36.25 +NAD83 / Kentucky North,2205,4269,15303,9802,37.3,-84.15,,500000,0,37.58,38.58 +ED50 / 3-degree Gauss-Kruger zone 9,2206,4230,16269,9807,0,27,1,9500000,0,, +ED50 / 3-degree Gauss-Kruger zone 10,2207,4230,16270,9807,0,30,1,10500000,0,, +ED50 / 3-degree Gauss-Kruger zone 11,2208,4230,16271,9807,0,33,1,11500000,0,, +ED50 / 3-degree Gauss-Kruger zone 12,2209,4230,16272,9807,0,36,1,12500000,0,, +ED50 / 3-degree Gauss-Kruger zone 13,2210,4230,16273,9807,0,39,1,13500000,0,, +ED50 / 3-degree Gauss-Kruger zone 14,2211,4230,16274,9807,0,42,1,14500000,0,, +ED50 / 3-degree Gauss-Kruger zone 15,2212,4230,16275,9807,0,45,1,15500000,0,, +ETRS89 / TM 30 NE,2213,4258,16430,9807,0,30,0.9996,500000,0,, +Douala 1948 / AOF west,2214,4192,18415,9807,0,10.3,0.999,1000000,1000000,, +Manoca 1962 / UTM zone 32N,2215,4193,16032,9807,0,9,0.9996,500000,0,, +Qornoq 1927 / UTM zone 22N,2216,4194,16022,9807,0,-51,0.9996,500000,0,, +Qornoq 1927 / UTM zone 23N,2217,4194,16023,9807,0,-45,0.9996,500000,0,, +NAD83 / Arizona East (ft),2222,4269,15304,9807,31,-110.1,0.9999,700000,0,, +NAD83 / Arizona Central (ft),2223,4269,15305,9807,31,-111.55,0.9999,700000,0,, +NAD83 / Arizona West (ft),2224,4269,15306,9807,31,-113.45,0.999933333,700000,0,, +NAD83 / California zone 1 (ftUS),2225,4269,15307,9802,39.2,-122,,6561666.667,1640416.667,41.4,40 +NAD83 / California zone 2 (ftUS),2226,4269,15308,9802,37.4,-122,,6561666.667,1640416.667,39.5,38.2 +NAD83 / California zone 3 (ftUS),2227,4269,15309,9802,36.3,-120.3,,6561666.667,1640416.667,38.26,37.04 +NAD83 / California zone 4 (ftUS),2228,4269,15310,9802,35.2,-119,,6561666.667,1640416.667,37.15,36 +NAD83 / California zone 5 (ftUS),2229,4269,15311,9802,33.3,-118,,6561666.667,1640416.667,35.28,34.02 +NAD83 / California zone 6 (ftUS),2230,4269,15312,9802,32.1,-116.15,,6561666.667,1640416.667,33.53,32.47 +NAD83 / Colorado North (ftUS),2231,4269,15313,9802,39.2,-105.3,,3000000,1000000,40.47,39.43 +NAD83 / Colorado Central (ftUS),2232,4269,15314,9802,37.5,-105.3,,3000000,1000000,39.45,38.27 +NAD83 / Colorado South (ftUS),2233,4269,15315,9802,36.4,-105.3,,3000000,1000000,38.26,37.14 +NAD83 / Connecticut (ftUS),2234,4269,15316,9802,40.5,-72.45,,1000000,500000,41.52,41.12 +NAD83 / Delaware (ftUS),2235,4269,15317,9807,38,-75.25,0.999995,656166.667,0,, +NAD83 / Florida East (ftUS),2236,4269,15318,9807,24.2,-81,0.999941177,656166.667,0,, +NAD83 / Florida West (ftUS),2237,4269,15319,9807,24.2,-82,0.999941177,656166.667,0,, +NAD83 / Florida North (ftUS),2238,4269,15320,9802,29,-84.3,,1968500,0,30.45,29.35 +NAD83 / Georgia East (ftUS),2239,4269,15321,9807,30,-82.1,0.9999,656166.667,0,, +NAD83 / Georgia West (ftUS),2240,4269,15322,9807,30,-84.1,0.9999,2296583.333,0,, +NAD83 / Idaho East (ftUS),2241,4269,15323,9807,41.4,-112.1,0.999947368,656166.667,0,, +NAD83 / Idaho Central (ftUS),2242,4269,15324,9807,41.4,-114,0.999947368,1640416.667,0,, +NAD83 / Idaho West (ftUS),2243,4269,15325,9807,41.4,-115.45,0.999933333,2624666.667,0,, +NAD83 / Indiana East (ftUS),2244,4269,15326,9807,37.3,-85.4,0.999966667,328083.333,818125,, +NAD83 / Indiana West (ftUS),2245,4269,15327,9807,37.3,-87.05,0.999966667,2952750,818125,, +NAD83 / Kentucky North (ftUS),2246,4269,15328,9802,37.3,-84.15,,1640416.667,0,37.58,38.58 +NAD83 / Kentucky South (ftUS),2247,4269,15329,9802,36.2,-85.45,,1640416.667,1640416.667,37.56,36.44 +NAD83 / Maryland (ftUS),2248,4269,15330,9802,37.4,-77,,1312333.333,0,39.27,38.18 +NAD83 / Massachusetts Mainland (ftUS),2249,4269,15331,9802,41,-71.3,,656166.667,2460625,42.41,41.43 +NAD83 / Massachusetts Island (ftUS),2250,4269,15332,9802,41,-70.3,,1640416.667,0,41.29,41.17 +NAD83 / Michigan North (ft),2251,4269,15333,9802,44.47,-87,,26246719.16,0,47.05,45.29 +NAD83 / Michigan Central (ft),2252,4269,15334,9802,43.19,-84.22,,19685039.37,0,45.42,44.11 +NAD83 / Michigan South (ft),2253,4269,15335,9802,41.3,-84.22,,13123359.58,0,43.4,42.06 +NAD83 / Mississippi East (ftUS),2254,4269,15336,9807,29.3,-88.5,0.99995,984250,0,, +NAD83 / Mississippi West (ftUS),2255,4269,15337,9807,29.3,-90.2,0.99995,2296583.333,0,, +NAD83 / Montana (ft),2256,4269,15338,9802,44.15,-109.3,,1968503.937,0,49,45 +NAD83 / New Mexico East (ftUS),2257,4269,15339,9807,31,-104.2,0.999909091,541337.5,0,, +NAD83 / New Mexico Central (ftUS),2258,4269,15340,9807,31,-106.15,0.9999,1640416.667,0,, +NAD83 / New Mexico West (ftUS),2259,4269,15341,9807,31,-107.5,0.999916667,2723091.667,0,, +NAD83 / New York East (ftUS),2260,4269,15342,9807,38.5,-74.3,0.9999,492125,0,, +NAD83 / New York Central (ftUS),2261,4269,15343,9807,40,-76.35,0.9999375,820208.333,0,, +NAD83 / New York West (ftUS),2262,4269,15344,9807,40,-78.35,0.9999375,1148291.667,0,, +NAD83 / New York Long Island (ftUS),2263,4269,15345,9802,40.1,-74,,984250,0,41.02,40.4 +NAD83 / North Carolina (ftUS),2264,4269,15346,9802,33.45,-79,,2000000,0,36.1,34.2 +NAD83 / North Dakota North (ft),2265,4269,15347,9802,47,-100.3,,1968503.937,0,48.44,47.26 +NAD83 / North Dakota South (ft),2266,4269,15348,9802,45.4,-100.3,,1968503.937,0,47.29,46.11 +NAD83 / Oklahoma North (ftUS),2267,4269,15349,9802,35,-98,,1968500,0,36.46,35.34 +NAD83 / Oklahoma South (ftUS),2268,4269,15350,9802,33.2,-98,,1968500,0,35.14,33.56 +NAD83 / Oregon North (ft),2269,4269,15351,9802,43.4,-120.3,,8202099.738,0,46,44.2 +NAD83 / Oregon South (ft),2270,4269,15352,9802,41.4,-120.3,,4921259.843,0,44,42.2 +NAD83 / Pennsylvania North (ftUS),2271,4269,15353,9802,40.1,-77.45,,1968500,0,41.57,40.53 +NAD83 / Pennsylvania South (ftUS),2272,4269,15354,9802,39.2,-77.45,,1968500,0,40.58,39.56 +NAD83 / South Carolina (ft),2273,4269,15355,9802,31.5,-81,,2000000,0,34.5,32.3 +NAD83 / Tennessee (ftUS),2274,4269,15356,9802,34.2,-86,,1968500,0,36.25,35.15 +NAD83 / Texas North (ftUS),2275,4269,15357,9802,34,-101.3,,656166.667,3280833.333,36.11,34.39 +NAD83 / Texas North Central (ftUS),2276,4269,15358,9802,31.4,-98.3,,1968500,6561666.667,33.58,32.08 +NAD83 / Texas Central (ftUS),2277,4269,15359,9802,29.4,-100.2,,2296583.333,9842500,31.53,30.07 +NAD83 / Texas South Central (ftUS),2278,4269,15360,9802,27.5,-99,,1968500,13123333.333,30.17,28.23 +NAD83 / Texas South (ftUS),2279,4269,15361,9802,25.4,-98.3,,984250,16404166.667,27.5,26.1 +NAD83 / Utah North (ft),2280,4269,15362,9802,40.2,-111.3,,1640419.948,3280839.895,41.47,40.43 +NAD83 / Utah Central (ft),2281,4269,15363,9802,38.2,-111.3,,1640419.948,6561679.79,40.39,39.01 +NAD83 / Utah South (ft),2282,4269,15364,9802,36.4,-111.3,,1640419.948,9842519.685,38.21,37.13 +NAD83 / Virginia North (ftUS),2283,4269,15365,9802,37.4,-78.3,,11482916.667,6561666.667,39.12,38.02 +NAD83 / Virginia South (ftUS),2284,4269,15366,9802,36.2,-78.3,,11482916.667,3280833.333,37.58,36.46 +NAD83 / Washington North (ftUS),2285,4269,15367,9802,47,-120.5,,1640416.667,0,48.44,47.3 +NAD83 / Washington South (ftUS),2286,4269,15368,9802,45.2,-120.3,,1640416.667,0,47.2,45.5 +NAD83 / Wisconsin North (ftUS),2287,4269,15369,9802,45.1,-90,,1968500,0,46.46,45.34 +NAD83 / Wisconsin Central (ftUS),2288,4269,15370,9802,43.5,-90,,1968500,0,45.3,44.15 +NAD83 / Wisconsin South (ftUS),2289,4269,15371,9802,42,-90,,1968500,0,44.04,42.44 +Batavia / TM 109 SE,2308,4211,16709,9807,0,109,0.9996,500000,10000000,, +WGS 84 / TM 116 SE,2309,4326,16716,9807,0,116,0.9996,500000,10000000,, +WGS 84 / TM 132 SE,2310,4326,16732,9807,0,132,0.9996,500000,10000000,, +WGS 84 / TM 6 NE,2311,4326,16406,9807,0,6,0.9996,500000,0,, +Campo Inchauspe / UTM zone 19S,2315,4221,16119,9807,0,-69,0.9996,500000,10000000,, +Campo Inchauspe / UTM zone 20S,2316,4221,16120,9807,0,-63,0.9996,500000,10000000,, +PSAD56 / ICN Regional,2317,4248,19976,9802,6,-66,,1000000,1000000,9,3 +Ain el Abd / Aramco Lambert,2318,4204,19977,9802,25.0522236,48,,0,0,17,33 +ED50 / TM27,2319,4230,16305,9807,0,27,1,500000,0,, +ED50 / TM30,2320,4230,16370,9807,0,30,1,500000,0,, +ED50 / TM33,2321,4230,16306,9807,0,33,1,500000,0,, +ED50 / TM36,2322,4230,16372,9807,0,36,1,500000,0,, +ED50 / TM39,2323,4230,16307,9807,0,39,1,500000,0,, +ED50 / TM42,2324,4230,16374,9807,0,42,1,500000,0,, +ED50 / TM45,2325,4230,16308,9807,0,45,1,500000,0,, +KKJ / Finland zone 1,2391,4123,18191,9807,0,21,1,1500000,0,, +KKJ / Finland zone 2,2392,4123,18192,9807,0,24,1,2500000,0,, +KKJ / Finland Uniform Coordinate System,2393,4123,18193,9807,0,27,1,3500000,0,, +KKJ / Finland zone 4,2394,4123,18194,9807,0,30,1,4500000,0,, +South Yemen / Gauss-Kruger zone 8,2395,4164,16208,9807,0,45,1,8500000,0,, +South Yemen / Gauss-Kruger zone 9,2396,4164,16209,9807,0,51,1,9500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3,2397,4178,16263,9807,0,9,1,3500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4,2398,4178,16264,9807,0,12,1,4500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5,2399,4178,16265,9807,0,15,1,5500000,0,, +RT90 2.5 gon W,2400,4124,19929,9807,0,15.48298,1,1500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 25,2401,4214,16285,9807,0,75,1,25500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 26,2402,4214,16286,9807,0,78,1,26500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 27,2403,4214,16287,9807,0,81,1,27500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 28,2404,4214,16288,9807,0,84,1,28500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 29,2405,4214,16289,9807,0,87,1,29500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 30,2406,4214,16290,9807,0,90,1,30500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 31,2407,4214,16291,9807,0,93,1,31500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 32,2408,4214,16292,9807,0,96,1,32500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 33,2409,4214,16293,9807,0,99,1,33500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 34,2410,4214,16294,9807,0,102,1,34500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 35,2411,4214,16295,9807,0,105,1,35500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 36,2412,4214,16296,9807,0,108,1,36500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 37,2413,4214,16297,9807,0,111,1,37500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 38,2414,4214,16298,9807,0,114,1,38500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 39,2415,4214,16299,9807,0,117,1,39500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 40,2416,4214,16070,9807,0,120,1,40500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 41,2417,4214,16071,9807,0,123,1,41500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 42,2418,4214,16072,9807,0,126,1,42500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 43,2419,4214,16073,9807,0,129,1,43500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 44,2420,4214,16074,9807,0,132,1,44500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger zone 45,2421,4214,16075,9807,0,135,1,45500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 75E,2422,4214,16313,9807,0,75,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 78E,2423,4214,16386,9807,0,78,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 81E,2424,4214,16314,9807,0,81,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 84E,2425,4214,16388,9807,0,84,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 87E,2426,4214,16315,9807,0,87,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 90E,2427,4214,16390,9807,0,90,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 93E,2428,4214,16316,9807,0,93,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 96E,2429,4214,16392,9807,0,96,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 99E,2430,4214,16317,9807,0,99,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 102E,2431,4214,16394,9807,0,102,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 105E,2432,4214,16318,9807,0,105,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 108E,2433,4214,16396,9807,0,108,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 111E,2434,4214,16319,9807,0,111,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 114E,2435,4214,16398,9807,0,114,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 117E,2436,4214,16320,9807,0,117,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 120E,2437,4214,16170,9807,0,120,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 123E,2438,4214,16321,9807,0,123,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 126E,2439,4214,16172,9807,0,126,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 129E,2440,4214,16322,9807,0,129,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 132E,2441,4214,16174,9807,0,132,1,500000,0,, +Beijing 1954 / 3-degree Gauss-Kruger CM 135E,2442,4214,16323,9807,0,135,1,500000,0,, +JGD2000 / Japan Plane Rectangular CS I,2443,4612,17801,9807,33,129.3,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS II,2444,4612,17802,9807,33,131,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS III,2445,4612,17803,9807,36,132.1,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS IV,2446,4612,17804,9807,33,133.3,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS V,2447,4612,17805,9807,36,134.2,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS VI,2448,4612,17806,9807,36,136,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS VII,2449,4612,17807,9807,36,137.1,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS VIII,2450,4612,17808,9807,36,138.3,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS IX,2451,4612,17809,9807,36,139.5,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS X,2452,4612,17810,9807,40,140.5,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XI,2453,4612,17811,9807,44,140.15,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XII,2454,4612,17812,9807,44,142.15,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XIII,2455,4612,17813,9807,44,144.15,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XIV,2456,4612,17814,9807,26,142,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XV,2457,4612,17815,9807,26,127.3,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XVI,2458,4612,17816,9807,26,124,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XVII,2459,4612,17817,9807,26,131,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XVIII,2460,4612,17818,9807,20,136,0.9999,0,0,, +JGD2000 / Japan Plane Rectangular CS XIX,2461,4612,17819,9807,26,154,0.9999,0,0,, +Pulkovo 1942 / Gauss-Kruger CM 9E,2492,4284,16302,9807,0,9,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 15E,2493,4284,16303,9807,0,15,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 21E,2494,4284,16304,9807,0,21,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 27E,2495,4284,16305,9807,0,27,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 33E,2496,4284,16306,9807,0,33,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 39E,2497,4284,16307,9807,0,39,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 45E,2498,4284,16308,9807,0,45,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 51E,2499,4284,16309,9807,0,51,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 57E,2500,4284,16310,9807,0,57,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 63E,2501,4284,16311,9807,0,63,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 69E,2502,4284,16312,9807,0,69,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 75E,2503,4284,16313,9807,0,75,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 81E,2504,4284,16314,9807,0,81,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 87E,2505,4284,16315,9807,0,87,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 93E,2506,4284,16316,9807,0,93,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 99E,2507,4284,16317,9807,0,99,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 105E,2508,4284,16318,9807,0,105,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 111E,2509,4284,16319,9807,0,111,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 117E,2510,4284,16320,9807,0,117,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 123E,2511,4284,16321,9807,0,123,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 129E,2512,4284,16322,9807,0,129,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 135E,2513,4284,16323,9807,0,135,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 141E,2514,4284,16324,9807,0,141,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 147E,2515,4284,16325,9807,0,147,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 153E,2516,4284,16326,9807,0,153,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 159E,2517,4284,16327,9807,0,159,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 165E,2518,4284,16328,9807,0,165,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 171E,2519,4284,16329,9807,0,171,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 177E,2520,4284,16330,9807,0,177,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 177W,2521,4284,16331,9807,0,-177,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger CM 171W,2522,4284,16332,9807,0,-171,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 7,2523,4284,16267,9807,0,21,1,7500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 8,2524,4284,16268,9807,0,24,1,8500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 9,2525,4284,16269,9807,0,27,1,9500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 10,2526,4284,16270,9807,0,30,1,10500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 11,2527,4284,16271,9807,0,33,1,11500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 12,2528,4284,16272,9807,0,36,1,12500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 13,2529,4284,16273,9807,0,39,1,13500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 14,2530,4284,16274,9807,0,42,1,14500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 15,2531,4284,16275,9807,0,45,1,15500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 16,2532,4284,16276,9807,0,48,1,16500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 17,2533,4284,16277,9807,0,51,1,17500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 18,2534,4284,16278,9807,0,54,1,18500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 19,2535,4284,16279,9807,0,57,1,19500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 20,2536,4284,16280,9807,0,60,1,20500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 21,2537,4284,16281,9807,0,63,1,21500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 22,2538,4284,16282,9807,0,66,1,22500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 23,2539,4284,16283,9807,0,69,1,23500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 24,2540,4284,16284,9807,0,72,1,24500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 25,2541,4284,16285,9807,0,75,1,25500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 26,2542,4284,16286,9807,0,78,1,26500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 27,2543,4284,16287,9807,0,81,1,27500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 28,2544,4284,16288,9807,0,84,1,28500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 29,2545,4284,16289,9807,0,87,1,29500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 30,2546,4284,16290,9807,0,90,1,30500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 31,2547,4284,16291,9807,0,93,1,31500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 32,2548,4284,16292,9807,0,96,1,32500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 33,2549,4284,16293,9807,0,99,1,33500000,0,, +Samboja / UTM zone 50S,2550,4125,16150,9807,0,117,0.9996,500000,10000000,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 34,2551,4284,16294,9807,0,102,1,34500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 35,2552,4284,16295,9807,0,105,1,35500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 36,2553,4284,16296,9807,0,108,1,36500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 37,2554,4284,16297,9807,0,111,1,37500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 38,2555,4284,16298,9807,0,114,1,38500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 39,2556,4284,16299,9807,0,117,1,39500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 40,2557,4284,16070,9807,0,120,1,40500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 41,2558,4284,16071,9807,0,123,1,41500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 42,2559,4284,16072,9807,0,126,1,42500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 43,2560,4284,16073,9807,0,129,1,43500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 44,2561,4284,16074,9807,0,132,1,44500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 45,2562,4284,16075,9807,0,135,1,45500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 46,2563,4284,16076,9807,0,138,1,46500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 47,2564,4284,16077,9807,0,141,1,47500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 48,2565,4284,16078,9807,0,144,1,48500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 49,2566,4284,16079,9807,0,147,1,49500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 50,2567,4284,16080,9807,0,150,1,50500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 51,2568,4284,16081,9807,0,153,1,51500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 52,2569,4284,16082,9807,0,156,1,52500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 53,2570,4284,16083,9807,0,159,1,53500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 54,2571,4284,16084,9807,0,162,1,54500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 55,2572,4284,16085,9807,0,165,1,55500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 56,2573,4284,16086,9807,0,168,1,56500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 57,2574,4284,16087,9807,0,171,1,57500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 58,2575,4284,16088,9807,0,174,1,58500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 59,2576,4284,16089,9807,0,177,1,59500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 60,2577,4284,16090,9807,0,180,1,60000000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 61,2578,4284,16091,9807,0,-177,1,61500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 62,2579,4284,16092,9807,0,-174,1,62500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 63,2580,4284,16093,9807,0,-171,1,63500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 64,2581,4284,16094,9807,0,-168,1,64500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E,2582,4284,16304,9807,0,21,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E,2583,4284,16368,9807,0,24,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E,2584,4284,16305,9807,0,27,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E,2585,4284,16370,9807,0,30,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E,2586,4284,16306,9807,0,33,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E,2587,4284,16372,9807,0,36,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E,2588,4284,16307,9807,0,39,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E,2589,4284,16374,9807,0,42,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E,2590,4284,16308,9807,0,45,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E,2591,4284,16376,9807,0,48,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E,2592,4284,16309,9807,0,51,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E,2593,4284,16378,9807,0,54,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E,2594,4284,16310,9807,0,57,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E,2595,4284,16380,9807,0,60,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E,2596,4284,16311,9807,0,63,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E,2597,4284,16382,9807,0,66,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E,2598,4284,16312,9807,0,69,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E,2599,4284,16384,9807,0,72,1,500000,0,, +Lietuvos Koordinoei Sistema 1994,2600,4669,19934,9807,0,24,0.9998,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E,2601,4284,16313,9807,0,75,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E,2602,4284,16386,9807,0,78,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E,2603,4284,16314,9807,0,81,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E,2604,4284,16388,9807,0,84,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E,2605,4284,16315,9807,0,87,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E,2606,4284,16390,9807,0,90,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E,2607,4284,16316,9807,0,93,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E,2608,4284,16392,9807,0,96,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E,2609,4284,16317,9807,0,99,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E,2610,4284,16394,9807,0,102,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E,2611,4284,16318,9807,0,105,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E,2612,4284,16396,9807,0,108,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E,2613,4284,16319,9807,0,111,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E,2614,4284,16398,9807,0,114,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E,2615,4284,16320,9807,0,117,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E,2616,4284,16170,9807,0,120,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E,2617,4284,16321,9807,0,123,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E,2618,4284,16172,9807,0,126,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E,2619,4284,16322,9807,0,129,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E,2620,4284,16174,9807,0,132,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E,2621,4284,16323,9807,0,135,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E,2622,4284,16176,9807,0,138,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E,2623,4284,16324,9807,0,141,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E,2624,4284,16178,9807,0,144,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E,2625,4284,16325,9807,0,147,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E,2626,4284,16180,9807,0,150,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E,2627,4284,16326,9807,0,153,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E,2628,4284,16182,9807,0,156,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E,2629,4284,16327,9807,0,159,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E,2630,4284,16184,9807,0,162,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E,2631,4284,16328,9807,0,165,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E,2632,4284,16186,9807,0,168,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E,2633,4284,16329,9807,0,171,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E,2634,4284,16188,9807,0,174,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E,2635,4284,16330,9807,0,177,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E,2636,4284,16190,9807,0,180,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W,2637,4284,16331,9807,0,-177,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W,2638,4284,16192,9807,0,-174,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W,2639,4284,16332,9807,0,-171,1,500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W,2640,4284,16194,9807,0,-168,1,500000,0,, +Tete / UTM zone 36S,2736,4127,16136,9807,0,33,0.9996,500000,10000000,, +Tete / UTM zone 37S,2737,4127,16137,9807,0,39,0.9996,500000,10000000,, +NAD83(HARN) / Alabama East,2759,4152,10131,9807,30.3,-85.5,0.99996,200000,0,, +NAD83(HARN) / Alabama West,2760,4152,10132,9807,30,-87.3,0.999933333,600000,0,, +NAD83(HARN) / Arizona East,2761,4152,10231,9807,31,-110.1,0.9999,213360,0,, +NAD83(HARN) / Arizona Central,2762,4152,10232,9807,31,-111.55,0.9999,213360,0,, +NAD83(HARN) / Arizona West,2763,4152,10233,9807,31,-113.45,0.999933333,213360,0,, +NAD83(HARN) / Arkansas North,2764,4152,10331,9802,34.2,-92,,400000,0,36.14,34.56 +NAD83(HARN) / Arkansas South,2765,4152,10332,9802,32.4,-92,,400000,400000,34.46,33.18 +NAD83(HARN) / California zone 1,2766,4152,10431,9802,39.2,-122,,2000000,500000,41.4,40 +NAD83(HARN) / California zone 2,2767,4152,10432,9802,37.4,-122,,2000000,500000,39.5,38.2 +NAD83(HARN) / California zone 3,2768,4152,10433,9802,36.3,-120.3,,2000000,500000,38.26,37.04 +NAD83(HARN) / California zone 4,2769,4152,10434,9802,35.2,-119,,2000000,500000,37.15,36 +NAD83(HARN) / California zone 5,2770,4152,10435,9802,33.3,-118,,2000000,500000,35.28,34.02 +NAD83(HARN) / California zone 6,2771,4152,10436,9802,32.1,-116.15,,2000000,500000,33.53,32.47 +NAD83(HARN) / Colorado North,2772,4152,10531,9802,39.2,-105.3,,914401.8289,304800.6096,40.47,39.43 +NAD83(HARN) / Colorado Central,2773,4152,10532,9802,37.5,-105.3,,914401.8289,304800.6096,39.45,38.27 +NAD83(HARN) / Colorado South,2774,4152,10533,9802,36.4,-105.3,,914401.8289,304800.6096,38.26,37.14 +NAD83(HARN) / Connecticut,2775,4152,10630,9802,40.5,-72.45,,304800.6096,152400.3048,41.52,41.12 +NAD83(HARN) / Delaware,2776,4152,10730,9807,38,-75.25,0.999995,200000,0,, +NAD83(HARN) / Florida East,2777,4152,10931,9807,24.2,-81,0.999941177,200000,0,, +NAD83(HARN) / Florida West,2778,4152,10932,9807,24.2,-82,0.999941177,200000,0,, +NAD83(HARN) / Florida North,2779,4152,10933,9802,29,-84.3,,600000,0,30.45,29.35 +NAD83(HARN) / Georgia East,2780,4152,11031,9807,30,-82.1,0.9999,200000,0,, +NAD83(HARN) / Georgia West,2781,4152,11032,9807,30,-84.1,0.9999,700000,0,, +NAD83(HARN) / Hawaii zone 1,2782,4152,15131,9807,18.5,-155.3,0.999966667,500000,0,, +NAD83(HARN) / Hawaii zone 2,2783,4152,15132,9807,20.2,-156.4,0.999966667,500000,0,, +NAD83(HARN) / Hawaii zone 3,2784,4152,15133,9807,21.1,-158,0.99999,500000,0,, +NAD83(HARN) / Hawaii zone 4,2785,4152,15134,9807,21.5,-159.3,0.99999,500000,0,, +NAD83(HARN) / Hawaii zone 5,2786,4152,15135,9807,21.4,-160.1,1,500000,0,, +NAD83(HARN) / Idaho East,2787,4152,11131,9807,41.4,-112.1,0.999947368,200000,0,, +NAD83(HARN) / Idaho Central,2788,4152,11132,9807,41.4,-114,0.999947368,500000,0,, +NAD83(HARN) / Idaho West,2789,4152,11133,9807,41.4,-115.45,0.999933333,800000,0,, +NAD83(HARN) / Illinois East,2790,4152,11231,9807,36.4,-88.2,0.999975,300000,0,, +NAD83(HARN) / Illinois West,2791,4152,11232,9807,36.4,-90.1,0.999941177,700000,0,, +NAD83(HARN) / Indiana East,2792,4152,11331,9807,37.3,-85.4,0.999966667,100000,250000,, +NAD83(HARN) / Indiana West,2793,4152,11332,9807,37.3,-87.05,0.999966667,900000,250000,, +NAD83(HARN) / Iowa North,2794,4152,11431,9802,41.3,-93.3,,1500000,1000000,43.16,42.04 +NAD83(HARN) / Iowa South,2795,4152,11432,9802,40,-93.3,,500000,0,41.47,40.37 +NAD83(HARN) / Kansas North,2796,4152,11531,9802,38.2,-98,,400000,0,39.47,38.43 +NAD83(HARN) / Kansas South,2797,4152,11532,9802,36.4,-98.3,,400000,400000,38.34,37.16 +NAD83(HARN) / Kentucky North,2798,4152,15303,9802,37.3,-84.15,,500000,0,37.58,38.58 +NAD83(HARN) / Kentucky South,2799,4152,11632,9802,36.2,-85.45,,500000,500000,37.56,36.44 +NAD83(HARN) / Louisiana North,2800,4152,11731,9802,30.3,-92.3,,1000000,0,32.4,31.1 +NAD83(HARN) / Louisiana South,2801,4152,11732,9802,28.3,-91.2,,1000000,0,30.42,29.18 +NAD83(HARN) / Maine East,2802,4152,11831,9807,43.4,-68.3,0.9999,300000,0,, +NAD83(HARN) / Maine West,2803,4152,11832,9807,42.5,-70.1,0.999966667,900000,0,, +NAD83(HARN) / Maryland,2804,4152,11930,9802,37.4,-77,,400000,0,39.27,38.18 +NAD83(HARN) / Massachusetts Mainland,2805,4152,12031,9802,41,-71.3,,200000,750000,42.41,41.43 +NAD83(HARN) / Massachusetts Island,2806,4152,12032,9802,41,-70.3,,500000,0,41.29,41.17 +NAD83(HARN) / Michigan North,2807,4152,12141,9802,44.47,-87,,8000000,0,47.05,45.29 +NAD83(HARN) / Michigan Central,2808,4152,12142,9802,43.19,-84.22,,6000000,0,45.42,44.11 +NAD83(HARN) / Michigan South,2809,4152,12143,9802,41.3,-84.22,,4000000,0,43.4,42.06 +NAD83(HARN) / Minnesota North,2810,4152,12231,9802,46.3,-93.06,,800000,100000,48.38,47.02 +NAD83(HARN) / Minnesota Central,2811,4152,12232,9802,45,-94.15,,800000,100000,47.03,45.37 +NAD83(HARN) / Minnesota South,2812,4152,12233,9802,43,-94,,800000,100000,45.13,43.47 +NAD83(HARN) / Mississippi East,2813,4152,12331,9807,29.3,-88.5,0.99995,300000,0,, +NAD83(HARN) / Mississippi West,2814,4152,12332,9807,29.3,-90.2,0.99995,700000,0,, +NAD83(HARN) / Missouri East,2815,4152,12431,9807,35.5,-90.3,0.999933333,250000,0,, +NAD83(HARN) / Missouri Central,2816,4152,12432,9807,35.5,-92.3,0.999933333,500000,0,, +NAD83(HARN) / Missouri West,2817,4152,12433,9807,36.1,-94.3,0.999941177,850000,0,, +NAD83(HARN) / Montana,2818,4152,12530,9802,44.15,-109.3,,600000,0,49,45 +NAD83(HARN) / Nebraska,2819,4152,12630,9802,39.5,-100,,500000,0,43,40 +NAD83(HARN) / Nevada East,2820,4152,12731,9807,34.45,-115.35,0.9999,200000,8000000,, +NAD83(HARN) / Nevada Central,2821,4152,12732,9807,34.45,-116.4,0.9999,500000,6000000,, +NAD83(HARN) / Nevada West,2822,4152,12733,9807,34.45,-118.35,0.9999,800000,4000000,, +NAD83(HARN) / New Hampshire,2823,4152,12830,9807,42.3,-71.4,0.999966667,300000,0,, +NAD83(HARN) / New Jersey,2824,4152,12930,9807,38.5,-74.3,0.9999,150000,0,, +NAD83(HARN) / New Mexico East,2825,4152,13031,9807,31,-104.2,0.999909091,165000,0,, +NAD83(HARN) / New Mexico Central,2826,4152,13032,9807,31,-106.15,0.9999,500000,0,, +NAD83(HARN) / New Mexico West,2827,4152,13033,9807,31,-107.5,0.999916667,830000,0,, +NAD83(HARN) / New York East,2828,4152,13131,9807,38.5,-74.3,0.9999,150000,0,, +NAD83(HARN) / New York Central,2829,4152,13132,9807,40,-76.35,0.9999375,250000,0,, +NAD83(HARN) / New York West,2830,4152,13133,9807,40,-78.35,0.9999375,350000,0,, +NAD83(HARN) / New York Long Island,2831,4152,13134,9802,40.1,-74,,300000,0,41.02,40.4 +NAD83(HARN) / North Dakota North,2832,4152,13331,9802,47,-100.3,,600000,0,48.44,47.26 +NAD83(HARN) / North Dakota South,2833,4152,13332,9802,45.4,-100.3,,600000,0,47.29,46.11 +NAD83(HARN) / Ohio North,2834,4152,13431,9802,39.4,-82.3,,600000,0,41.42,40.26 +NAD83(HARN) / Ohio South,2835,4152,13432,9802,38,-82.3,,600000,0,40.02,38.44 +NAD83(HARN) / Oklahoma North,2836,4152,13531,9802,35,-98,,600000,0,36.46,35.34 +NAD83(HARN) / Oklahoma South,2837,4152,13532,9802,33.2,-98,,600000,0,35.14,33.56 +NAD83(HARN) / Oregon North,2838,4152,13631,9802,43.4,-120.3,,2500000,0,46,44.2 +NAD83(HARN) / Oregon South,2839,4152,13632,9802,41.4,-120.3,,1500000,0,44,42.2 +NAD83(HARN) / Rhode Island,2840,4152,13830,9807,41.05,-71.3,0.99999375,100000,0,, +NAD83(HARN) / South Dakota North,2841,4152,14031,9802,43.5,-100,,600000,0,45.41,44.25 +NAD83(HARN) / South Dakota South,2842,4152,14032,9802,42.2,-100.2,,600000,0,44.24,42.5 +NAD83(HARN) / Tennessee,2843,4152,14130,9802,34.2,-86,,600000,0,36.25,35.15 +NAD83(HARN) / Texas North,2844,4152,14231,9802,34,-101.3,,200000,1000000,36.11,34.39 +NAD83(HARN) / Texas North Central,2845,4152,14232,9802,31.4,-98.3,,600000,2000000,33.58,32.08 +NAD83(HARN) / Texas Central,2846,4152,14233,9802,29.4,-100.2,,700000,3000000,31.53,30.07 +NAD83(HARN) / Texas South Central,2847,4152,14234,9802,27.5,-99,,600000,4000000,30.17,28.23 +NAD83(HARN) / Texas South,2848,4152,14235,9802,25.4,-98.3,,300000,5000000,27.5,26.1 +NAD83(HARN) / Utah North,2849,4152,14331,9802,40.2,-111.3,,500000,1000000,41.47,40.43 +NAD83(HARN) / Utah Central,2850,4152,14332,9802,38.2,-111.3,,500000,2000000,40.39,39.01 +NAD83(HARN) / Utah South,2851,4152,14333,9802,36.4,-111.3,,500000,3000000,38.21,37.13 +NAD83(HARN) / Vermont,2852,4152,14430,9807,42.3,-72.3,0.999964286,500000,0,, +NAD83(HARN) / Virginia North,2853,4152,14531,9802,37.4,-78.3,,3500000,2000000,39.12,38.02 +NAD83(HARN) / Virginia South,2854,4152,14532,9802,36.2,-78.3,,3500000,1000000,37.58,36.46 +NAD83(HARN) / Washington North,2855,4152,14631,9802,47,-120.5,,500000,0,48.44,47.3 +NAD83(HARN) / Washington South,2856,4152,14632,9802,45.2,-120.3,,500000,0,47.2,45.5 +NAD83(HARN) / West Virginia North,2857,4152,14731,9802,38.3,-79.3,,600000,0,40.15,39 +NAD83(HARN) / West Virginia South,2858,4152,14732,9802,37,-81,,600000,0,38.53,37.29 +NAD83(HARN) / Wisconsin North,2859,4152,14831,9802,45.1,-90,,600000,0,46.46,45.34 +NAD83(HARN) / Wisconsin Central,2860,4152,14832,9802,43.5,-90,,600000,0,45.3,44.15 +NAD83(HARN) / Wisconsin South,2861,4152,14833,9802,42,-90,,600000,0,44.04,42.44 +NAD83(HARN) / Wyoming East,2862,4152,14931,9807,40.3,-105.1,0.9999375,200000,0,, +NAD83(HARN) / Wyoming East Central,2863,4152,14932,9807,40.3,-107.2,0.9999375,400000,100000,, +NAD83(HARN) / Wyoming West Central,2864,4152,14933,9807,40.3,-108.45,0.9999375,600000,0,, +NAD83(HARN) / Wyoming West,2865,4152,14934,9807,40.3,-110.05,0.9999375,800000,100000,, +NAD83(HARN) / Puerto Rico and Virgin Is.,2866,4152,15230,9802,17.5,-66.26,,200000,200000,18.26,18.02 +NAD83(HARN) / Arizona East (ft),2867,4152,15304,9807,31,-110.1,0.9999,700000,0,, +NAD83(HARN) / Arizona Central (ft),2868,4152,15305,9807,31,-111.55,0.9999,700000,0,, +NAD83(HARN) / Arizona West (ft),2869,4152,15306,9807,31,-113.45,0.999933333,700000,0,, +NAD83(HARN) / California zone 1 (ftUS),2870,4152,15307,9802,39.2,-122,,6561666.667,1640416.667,41.4,40 +NAD83(HARN) / California zone 2 (ftUS),2871,4152,15308,9802,37.4,-122,,6561666.667,1640416.667,39.5,38.2 +NAD83(HARN) / California zone 3 (ftUS),2872,4152,15309,9802,36.3,-120.3,,6561666.667,1640416.667,38.26,37.04 +NAD83(HARN) / California zone 4 (ftUS),2873,4152,15310,9802,35.2,-119,,6561666.667,1640416.667,37.15,36 +NAD83(HARN) / California zone 5 (ftUS),2874,4152,15311,9802,33.3,-118,,6561666.667,1640416.667,35.28,34.02 +NAD83(HARN) / California zone 6 (ftUS),2875,4152,15312,9802,32.1,-116.15,,6561666.667,1640416.667,33.53,32.47 +NAD83(HARN) / Colorado North (ftUS),2876,4152,15313,9802,39.2,-105.3,,3000000,1000000,40.47,39.43 +NAD83(HARN) / Colorado Central (ftUS),2877,4152,15314,9802,37.5,-105.3,,3000000,1000000,39.45,38.27 +NAD83(HARN) / Colorado South (ftUS),2878,4152,15315,9802,36.4,-105.3,,3000000,1000000,38.26,37.14 +NAD83(HARN) / Connecticut (ftUS),2879,4152,15316,9802,40.5,-72.45,,1000000,500000,41.52,41.12 +NAD83(HARN) / Delaware (ftUS),2880,4152,15317,9807,38,-75.25,0.999995,656166.667,0,, +NAD83(HARN) / Florida East (ftUS),2881,4152,15318,9807,24.2,-81,0.999941177,656166.667,0,, +NAD83(HARN) / Florida West (ftUS),2882,4152,15319,9807,24.2,-82,0.999941177,656166.667,0,, +NAD83(HARN) / Florida North (ftUS),2883,4152,15320,9802,29,-84.3,,1968500,0,30.45,29.35 +NAD83(HARN) / Georgia East (ftUS),2884,4152,15321,9807,30,-82.1,0.9999,656166.667,0,, +NAD83(HARN) / Georgia West (ftUS),2885,4152,15322,9807,30,-84.1,0.9999,2296583.333,0,, +NAD83(HARN) / Idaho East (ftUS),2886,4152,15323,9807,41.4,-112.1,0.999947368,656166.667,0,, +NAD83(HARN) / Idaho Central (ftUS),2887,4152,15324,9807,41.4,-114,0.999947368,1640416.667,0,, +NAD83(HARN) / Idaho West (ftUS),2888,4152,15325,9807,41.4,-115.45,0.999933333,2624666.667,0,, +NAD83(HARN) / Indiana East (ftUS),2889,4152,15326,9807,37.3,-85.4,0.999966667,328083.333,818125,, +NAD83(HARN) / Indiana West (ftUS),2890,4152,15327,9807,37.3,-87.05,0.999966667,2952750,818125,, +NAD83(HARN) / Kentucky North (ftUS),2891,4152,15328,9802,37.3,-84.15,,1640416.667,0,37.58,38.58 +NAD83(HARN) / Kentucky South (ftUS),2892,4152,15329,9802,36.2,-85.45,,1640416.667,1640416.667,37.56,36.44 +NAD83(HARN) / Maryland (ftUS),2893,4152,15330,9802,37.4,-77,,1312333.333,0,39.27,38.18 +NAD83(HARN) / Massachusetts Mainland (ftUS),2894,4152,15331,9802,41,-71.3,,656166.667,2460625,42.41,41.43 +NAD83(HARN) / Massachusetts Island (ftUS),2895,4152,15332,9802,41,-70.3,,1640416.667,0,41.29,41.17 +NAD83(HARN) / Michigan North (ft),2896,4152,15333,9802,44.47,-87,,26246719.16,0,47.05,45.29 +NAD83(HARN) / Michigan Central (ft),2897,4152,15334,9802,43.19,-84.22,,19685039.37,0,45.42,44.11 +NAD83(HARN) / Michigan South (ft),2898,4152,15335,9802,41.3,-84.22,,13123359.58,0,43.4,42.06 +NAD83(HARN) / Mississippi East (ftUS),2899,4152,15336,9807,29.3,-88.5,0.99995,984250,0,, +NAD83(HARN) / Mississippi West (ftUS),2900,4152,15337,9807,29.3,-90.2,0.99995,2296583.333,0,, +NAD83(HARN) / Montana (ft),2901,4152,15338,9802,44.15,-109.3,,1968503.937,0,49,45 +NAD83(HARN) / New Mexico East (ftUS),2902,4152,15339,9807,31,-104.2,0.999909091,541337.5,0,, +NAD83(HARN) / New Mexico Central (ftUS),2903,4152,15340,9807,31,-106.15,0.9999,1640416.667,0,, +NAD83(HARN) / New Mexico West (ftUS),2904,4152,15341,9807,31,-107.5,0.999916667,2723091.667,0,, +NAD83(HARN) / New York East (ftUS),2905,4152,15342,9807,38.5,-74.3,0.9999,492125,0,, +NAD83(HARN) / New York Central (ftUS),2906,4152,15343,9807,40,-76.35,0.9999375,820208.333,0,, +NAD83(HARN) / New York West (ftUS),2907,4152,15344,9807,40,-78.35,0.9999375,1148291.667,0,, +NAD83(HARN) / New York Long Island (ftUS),2908,4152,15345,9802,40.1,-74,,984250,0,41.02,40.4 +NAD83(HARN) / North Dakota North (ft),2909,4152,15347,9802,47,-100.3,,1968503.937,0,48.44,47.26 +NAD83(HARN) / North Dakota South (ft),2910,4152,15348,9802,45.4,-100.3,,1968503.937,0,47.29,46.11 +NAD83(HARN) / Oklahoma North (ftUS),2911,4152,15349,9802,35,-98,,1968500,0,36.46,35.34 +NAD83(HARN) / Oklahoma South (ftUS),2912,4152,15350,9802,33.2,-98,,1968500,0,35.14,33.56 +NAD83(HARN) / Oregon North (ft),2913,4152,15351,9802,43.4,-120.3,,8202099.738,0,46,44.2 +NAD83(HARN) / Oregon South (ft),2914,4152,15352,9802,41.4,-120.3,,4921259.843,0,44,42.2 +NAD83(HARN) / Tennessee (ftUS),2915,4152,15356,9802,34.2,-86,,1968500,0,36.25,35.15 +NAD83(HARN) / Texas North (ftUS),2916,4152,15357,9802,34,-101.3,,656166.667,3280833.333,36.11,34.39 +NAD83(HARN) / Texas North Central (ftUS),2917,4152,15358,9802,31.4,-98.3,,1968500,6561666.667,33.58,32.08 +NAD83(HARN) / Texas Central (ftUS),2918,4152,15359,9802,29.4,-100.2,,2296583.333,9842500,31.53,30.07 +NAD83(HARN) / Texas South Central (ftUS),2919,4152,15360,9802,27.5,-99,,1968500,13123333.333,30.17,28.23 +NAD83(HARN) / Texas South (ftUS),2920,4152,15361,9802,25.4,-98.3,,984250,16404166.667,27.5,26.1 +NAD83(HARN) / Utah North (ft),2921,4152,15362,9802,40.2,-111.3,,1640419.948,3280839.895,41.47,40.43 +NAD83(HARN) / Utah Central (ft),2922,4152,15363,9802,38.2,-111.3,,1640419.948,6561679.79,40.39,39.01 +NAD83(HARN) / Utah South (ft),2923,4152,15364,9802,36.4,-111.3,,1640419.948,9842519.685,38.21,37.13 +NAD83(HARN) / Virginia North (ftUS),2924,4152,15365,9802,37.4,-78.3,,11482916.667,6561666.667,39.12,38.02 +NAD83(HARN) / Virginia South (ftUS),2925,4152,15366,9802,36.2,-78.3,,11482916.667,3280833.333,37.58,36.46 +NAD83(HARN) / Washington North (ftUS),2926,4152,15367,9802,47,-120.5,,1640416.667,0,48.44,47.3 +NAD83(HARN) / Washington South (ftUS),2927,4152,15368,9802,45.2,-120.3,,1640416.667,0,47.2,45.5 +NAD83(HARN) / Wisconsin North (ftUS),2928,4152,15369,9802,45.1,-90,,1968500,0,46.46,45.34 +NAD83(HARN) / Wisconsin Central (ftUS),2929,4152,15370,9802,43.5,-90,,1968500,0,45.3,44.15 +NAD83(HARN) / Wisconsin South (ftUS),2930,4152,15371,9802,42,-90,,1968500,0,44.04,42.44 +Beduaram / TM 13 NE,2931,4213,16413,9807,0,13,0.9996,500000,0,, +Segara / UTM zone 50S,2933,4613,16150,9807,0,117,0.9996,500000,10000000,, +Pulkovo 1942 / CS63 zone A1,2935,4284,18441,9807,0.07,41.32,1,1300000,0,, +Pulkovo 1942 / CS63 zone A2,2936,4284,18442,9807,0.07,44.32,1,2300000,0,, +Pulkovo 1942 / CS63 zone A3,2937,4284,18443,9807,0.07,47.32,1,3300000,0,, +Pulkovo 1942 / CS63 zone A4,2938,4284,18444,9807,0.07,50.32,1,4300000,0,, +Pulkovo 1942 / CS63 zone K2,2939,4284,18446,9807,0.08,50.46,1,2300000,0,, +Pulkovo 1942 / CS63 zone K3,2940,4284,18447,9807,0.08,53.46,1,3300000,0,, +Pulkovo 1942 / CS63 zone K4,2941,4284,18448,9807,0.08,56.46,1,4300000,0,, +Porto Santo / UTM zone 28N,2942,4615,16028,9807,0,-15,0.9996,500000,0,, +Selvagem Grande / UTM zone 28N,2943,4616,16028,9807,0,-15,0.9996,500000,0,, +NAD83(CSRS) / SCoPQ zone 2,2944,4617,17700,9807,0,-55.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 3,2945,4617,17703,9807,0,-58.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 4,2946,4617,17704,9807,0,-61.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 5,2947,4617,17705,9807,0,-64.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 6,2948,4617,17706,9807,0,-67.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 7,2949,4617,17707,9807,0,-70.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 8,2950,4617,17708,9807,0,-73.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 9,2951,4617,17709,9807,0,-76.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 10,2952,4617,17710,9807,0,-79.3,0.9999,304800,0,, +NAD83(CSRS) / UTM zone 11N,2955,4617,16011,9807,0,-117,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 12N,2956,4617,16012,9807,0,-111,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 13N,2957,4617,16013,9807,0,-105,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 17N,2958,4617,16017,9807,0,-81,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 18N,2959,4617,16018,9807,0,-75,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 19N,2960,4617,16019,9807,0,-69,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 20N,2961,4617,16020,9807,0,-63,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 21N,2962,4617,16021,9807,0,-57,0.9996,500000,0,, +NAD27 / Alaska Albers,2964,4267,15020,9822,50,-154,,0,0,-154,55 +NAD83 / Indiana East (ftUS),2965,4269,15372,9807,37.3,-85.4,0.999966667,328083.333,820208.333,, +NAD83 / Indiana West (ftUS),2966,4269,15373,9807,37.3,-87.05,0.999966667,2952750,820208.333,, +NAD83(HARN) / Indiana East (ftUS),2967,4152,15372,9807,37.3,-85.4,0.999966667,328083.333,820208.333,, +NAD83(HARN) / Indiana West (ftUS),2968,4152,15373,9807,37.3,-87.05,0.999966667,2952750,820208.333,, +Fort Marigot / UTM zone 20N,2969,4621,16020,9807,0,-63,0.9996,500000,0,, +Guadeloupe 1948 / UTM zone 20N,2970,4622,16020,9807,0,-63,0.9996,500000,0,, +CSG67 / UTM zone 22N,2971,4623,16022,9807,0,-51,0.9996,500000,0,, +RGFG95 / UTM zone 22N,2972,4624,16022,9807,0,-51,0.9996,500000,0,, +Martinique 1938 / UTM zone 20N,2973,4625,16020,9807,0,-63,0.9996,500000,0,, +RGR92 / UTM zone 40S,2975,4627,16140,9807,0,57,0.9996,500000,10000000,, +Tahiti 52 / UTM zone 6S,2976,4628,16106,9807,0,-147,0.9996,500000,10000000,, +IGN72 Nuku Hiva / UTM zone 7S,2978,4630,16107,9807,0,-141,0.9996,500000,10000000,, +K0 1949 / UTM zone 42S,2979,4631,16142,9807,0,69,0.9996,500000,10000000,, +Combani 1950 / UTM zone 38S,2980,4632,16138,9807,0,45,0.9996,500000,10000000,, +IGN56 Lifou / UTM zone 58S,2981,4633,16158,9807,0,165,0.9996,500000,10000000,, +IGN72 Grand Terre / UTM zone 58S,2982,4634,16158,9807,0,165,0.9996,500000,10000000,, +RGNC 1991 / Lambert New Caledonia,2984,4645,19981,9802,-21.3,166,,400000,300000,-20.4,-22.2 +Saint Pierre et Miquelon 1950 / UTM zone 21N,2987,4638,16021,9807,0,-57,0.9996,500000,0,, +MOP78 / UTM zone 1S,2988,4639,16101,9807,0,-177,0.9996,500000,10000000,, +RRAF 1991 / UTM zone 20N,2989,4640,16020,9807,0,-63,0.9996,500000,0,, +Reunion 1947 / TM Reunion,2990,4626,19982,9807,-21.07,55.32,1,50000,160000,, +NAD83 / Oregon LCC (m),2991,4269,13633,9802,41.45,-120.3,,400000,0,43,45.3 +NAD83 / Oregon GIC Lambert (ft),2992,4269,15374,9802,41.45,-120.3,,1312335.958,0,43,45.3 +NAD83(HARN) / Oregon LCC (m),2993,4152,13633,9802,41.45,-120.3,,400000,0,43,45.3 +NAD83(HARN) / Oregon GIC Lambert (ft),2994,4152,15374,9802,41.45,-120.3,,1312335.958,0,43,45.3 +IGN53 Mare / UTM zone 58S,2995,4641,16158,9807,0,165,0.9996,500000,10000000,, +ST84 Ile des Pins / UTM zone 58S,2996,4642,16158,9807,0,165,0.9996,500000,10000000,, +NEA74 Noumea / UTM zone 58S,2998,4644,16158,9807,0,165,0.9996,500000,10000000,, +Grand Comoros / UTM zone 38S,2999,4646,16138,9807,0,45,0.9996,500000,10000000,, +NAD83 / BC Albers,3005,4269,19984,9822,45,-126,,1000000,0,-126,50 +SWEREF99 TM,3006,4619,17333,9807,0,15,0.9996,500000,0,, +SWEREF99 12 00,3007,4619,17321,9807,0,12,1,150000,0,, +SWEREF99 13 30,3008,4619,17322,9807,0,13.3,1,150000,0,, +SWEREF99 15 00,3009,4619,17323,9807,0,15,1,150000,0,, +SWEREF99 16 30,3010,4619,17324,9807,0,16.3,1,150000,0,, +SWEREF99 18 00,3011,4619,17325,9807,0,18,1,150000,0,, +SWEREF99 14 15,3012,4619,17326,9807,0,14.15,1,150000,0,, +SWEREF99 15 45,3013,4619,17327,9807,0,15.45,1,150000,0,, +SWEREF99 17 15,3014,4619,17328,9807,0,17.15,1,150000,0,, +SWEREF99 18 45,3015,4619,17329,9807,0,18.45,1,150000,0,, +SWEREF99 20 15,3016,4619,17330,9807,0,20.15,1,150000,0,, +SWEREF99 21 45,3017,4619,17331,9807,0,21.45,1,150000,0,, +SWEREF99 23 15,3018,4619,17332,9807,0,23.15,1,150000,0,, +RT90 7.5 gon V,3019,4124,17334,9807,0,11.18298,1,1500000,0,, +RT90 5 gon V,3020,4124,17335,9807,0,13.33298,1,1500000,0,, +RT90 2.5 gon V,3021,4124,19929,9807,0,15.48298,1,1500000,0,, +RT90 0 gon,3022,4124,17336,9807,0,18.03298,1,1500000,0,, +RT90 2.5 gon O,3023,4124,17337,9807,0,20.18298,1,1500000,0,, +RT90 5 gon O,3024,4124,17338,9807,0,22.33298,1,1500000,0,, +WGS 84 / Australian Antarctic Lambert,3033,4326,19994,9802,-50,70,,6000000,6000000,-68.3,-74.3 +ETRS89 / LCC Europe,3034,4258,19985,9802,52,10,,4000000,2800000,35,65 +ETRS89 / LAEA Europe,3035,4258,19986,9820,52,10,,4321000,3210000,, +ETRS89 / TM26,3038,4258,16026,9807,0,-27,0.9996,500000,0,, +ETRS89 / TM27,3039,4258,16027,9807,0,-21,0.9996,500000,0,, +ETRS89 / UTM zone 28N (N-E),3040,4258,16028,9807,0,-15,0.9996,500000,0,, +ETRS89 / UTM zone 29N (N-E),3041,4258,16029,9807,0,-9,0.9996,500000,0,, +ETRS89 / UTM zone 30N (N-E),3042,4258,16030,9807,0,-3,0.9996,500000,0,, +ETRS89 / UTM zone 31N (N-E),3043,4258,16031,9807,0,3,0.9996,500000,0,, +ETRS89 / UTM zone 32N (N-E),3044,4258,16032,9807,0,9,0.9996,500000,0,, +ETRS89 / UTM zone 33N (N-E),3045,4258,16033,9807,0,15,0.9996,500000,0,, +ETRS89 / UTM zone 34N (N-E),3046,4258,16034,9807,0,21,0.9996,500000,0,, +ETRS89 / UTM zone 35N (N-E),3047,4258,16035,9807,0,27,0.9996,500000,0,, +ETRS89 / UTM zone 36N (N-E),3048,4258,16036,9807,0,33,0.9996,500000,0,, +ETRS89 / UTM zone 37N (N-E),3049,4258,16037,9807,0,39,0.9996,500000,0,, +ETRS89 / TM38,3050,4258,16038,9807,0,45,0.9996,500000,0,, +ETRS89 / TM39,3051,4258,16039,9807,0,51,0.9996,500000,0,, +Hjorsey 1955 / UTM zone 26N,3054,4658,16026,9807,0,-27,0.9996,500000,0,, +Hjorsey 1955 / UTM zone 27N,3055,4658,16027,9807,0,-21,0.9996,500000,0,, +Hjorsey 1955 / UTM zone 28N,3056,4658,16028,9807,0,-15,0.9996,500000,0,, +ISN93 / Lambert 1993,3057,4659,19989,9802,65,-19,,500000,500000,64.15,65.45 +LKS92 / Latvia TM,3059,4661,19990,9807,0,24,0.9996,500000,-6000000,, +IGN72 Grande Terre / UTM zone 58S,3060,4662,16158,9807,0,165,0.9996,500000,10000000,, +Porto Santo 1995 / UTM zone 28N,3061,4663,16028,9807,0,-15,0.9996,500000,0,, +Azores Oriental 1995 / UTM zone 26N,3062,4664,16026,9807,0,-27,0.9996,500000,0,, +Azores Central 1995 / UTM zone 26N,3063,4665,16026,9807,0,-27,0.9996,500000,0,, +IGM95 / UTM zone 32N,3064,4670,16032,9807,0,9,0.9996,500000,0,, +IGM95 / UTM zone 33N,3065,4670,16033,9807,0,15,0.9996,500000,0,, +ED50 / Jordan TM,3066,4230,19995,9807,0,37,0.9998,500000,-3000000,, +NAD27 / Wisconsin Transverse Mercator,3069,4267,14811,9807,0,-90,0.9996,500000,-4500000,, +NAD83 / Wisconsin Transverse Mercator,3070,4269,14841,9807,0,-90,0.9996,520000,-4480000,, +NAD83(HARN) / Wisconsin Transverse Mercator,3071,4152,14841,9807,0,-90,0.9996,520000,-4480000,, +NAD83 / Maine CS2000 East,3072,4269,11851,9807,43.5,-67.523,0.99998,700000,0,, +NAD83 / Maine CS2000 Central,3073,4269,11852,9807,43,-69.073,0.99998,500000,0,, +NAD83 / Maine CS2000 West,3074,4269,11853,9807,42.5,-70.223,0.99998,300000,0,, +NAD83(HARN) / Maine CS2000 East,3075,4152,11851,9807,43.5,-67.523,0.99998,700000,0,, +NAD83(HARN) / Maine CS2000 Central,3076,4152,11852,9807,43,-69.073,0.99998,500000,0,, +NAD83(HARN) / Maine CS2000 West,3077,4152,11853,9807,42.5,-70.223,0.99998,300000,0,, +NAD27 / Shackleford,3080,4267,14252,9802,31.1,-100,,3000000,3000000,27.25,34.55 +NAD83 / Texas State Mapping System,3081,4269,14251,9802,31.1,-100,,1000000,1000000,27.25,34.55 +NAD83 / Texas Centric Lambert Conformal,3082,4269,14253,9802,18,-100,,1500000,5000000,27.3,35 +NAD83 / Texas Centric Albers Equal Area,3083,4269,14254,9822,18,-100,,1500000,6000000,-100,27.3 +NAD83(HARN) / Texas Centric Lambert Conformal,3084,4152,14253,9802,18,-100,,1500000,5000000,27.3,35 +NAD83(HARN) / Texas Centric Albers Equal Area,3085,4152,14254,9822,18,-100,,1500000,6000000,-100,27.3 +NAD83 / Florida GDL Albers,3086,4269,10934,9822,24,-84,,400000,0,-84,24 +NAD83(HARN) / Florida GDL Albers,3087,4152,10934,9822,24,-84,,400000,0,-84,24 +NAD83 / Kentucky Single Zone,3088,4269,11630,9802,36.2,-85.45,,1500000,1000000,37.05,38.4 +NAD83 / Kentucky Single Zone (ftUS),3089,4269,15375,9802,36.2,-85.45,,4921250,3280833.333,37.05,38.4 +NAD83(HARN) / Kentucky Single Zone,3090,4152,11630,9802,36.2,-85.45,,1500000,1000000,37.05,38.4 +NAD83(HARN) / Kentucky Single Zone (ftUS),3091,4152,15375,9802,36.2,-85.45,,4921250,3280833.333,37.05,38.4 +Tokyo / UTM zone 51N,3092,4301,16051,9807,0,123,0.9996,500000,0,, +Tokyo / UTM zone 52N,3093,4301,16052,9807,0,129,0.9996,500000,0,, +Tokyo / UTM zone 53N,3094,4301,16053,9807,0,135,0.9996,500000,0,, +Tokyo / UTM zone 54N,3095,4301,16054,9807,0,141,0.9996,500000,0,, +Tokyo / UTM zone 55N,3096,4301,16055,9807,0,147,0.9996,500000,0,, +JGD2000 / UTM zone 51N,3097,4612,16051,9807,0,123,0.9996,500000,0,, +JGD2000 / UTM zone 52N,3098,4612,16052,9807,0,129,0.9996,500000,0,, +JGD2000 / UTM zone 53N,3099,4612,16053,9807,0,135,0.9996,500000,0,, +JGD2000 / UTM zone 54N,3100,4612,16054,9807,0,141,0.9996,500000,0,, +JGD2000 / UTM zone 55N,3101,4612,16055,9807,0,147,0.9996,500000,0,, +American Samoa 1962 / American Samoa Lambert,3102,4169,15376,9801,-14.16,-170,1,500000,312234.65,, +Gulshan 303 / Bangladesh Transverse Mercator,3106,4682,16490,9807,0,90,0.9996,500000,0,, +GDA94 / SA Lambert,3107,4283,17359,9802,-32,135,,1000000,2000000,-28,-36 +ETRS89 / Guernsey Grid,3108,4258,19998,9807,49.3,-2.25,0.999997,47000,50000,, +ETRS89 / Jersey Transverse Mercator,3109,4258,19999,9807,49.225,-2.135,0.9999999,40000,70000,, +AGD66 / Vicgrid66,3110,4202,17360,9802,-37,145,,2500000,4500000,-36,-38 +GDA94 / Vicgrid,3111,4283,17361,9802,-37,145,,2500000,2500000,-36,-38 +GDA94 / Geoscience Australia Lambert,3112,4283,17362,9802,0,134,,0,0,-18,-36 +GDA94 / BCSG02,3113,4283,17363,9807,-28,153,0.99999,50000,100000,, +MAGNA-SIRGAS / Colombia Far West zone,3114,4686,18055,9807,4.35463215,-80.04390285,1,1000000,1000000,, +MAGNA-SIRGAS / Colombia West zone,3115,4686,18056,9807,4.35463215,-77.04390285,1,1000000,1000000,, +MAGNA-SIRGAS / Colombia Bogota zone,3116,4686,18057,9807,4.35463215,-74.04390285,1,1000000,1000000,, +MAGNA-SIRGAS / Colombia East Central zone,3117,4686,18058,9807,4.35463215,-71.04390285,1,1000000,1000000,, +MAGNA-SIRGAS / Colombia East zone,3118,4686,18059,9807,4.35463215,-68.04390285,1,1000000,1000000,, +Douala 1948 / AEF west,3119,4192,18415,9807,0,10.3,0.999,1000000,1000000,, +ETRS89 / ETRS-GK19FIN,3126,4258,18183,9807,0,19,1,500000,0,, +ETRS89 / ETRS-GK20FIN,3127,4258,18184,9807,0,20,1,500000,0,, +ETRS89 / ETRS-GK21FIN,3128,4258,18185,9807,0,21,1,500000,0,, +ETRS89 / ETRS-GK22FIN,3129,4258,18186,9807,0,22,1,500000,0,, +ETRS89 / ETRS-GK23FIN,3130,4258,18187,9807,0,23,1,500000,0,, +ETRS89 / ETRS-GK24FIN,3131,4258,18188,9807,0,24,1,500000,0,, +ETRS89 / ETRS-GK25FIN,3132,4258,18189,9807,0,25,1,500000,0,, +ETRS89 / ETRS-GK26FIN,3133,4258,18190,9807,0,26,1,500000,0,, +ETRS89 / ETRS-GK27FIN,3134,4258,18195,9807,0,27,1,500000,0,, +ETRS89 / ETRS-GK28FIN,3135,4258,18196,9807,0,28,1,500000,0,, +ETRS89 / ETRS-GK29FIN,3136,4258,18197,9807,0,29,1,500000,0,, +ETRS89 / ETRS-GK30FIN,3137,4258,18198,9807,0,30,1,500000,0,, +ETRS89 / ETRS-GK31FIN,3138,4258,18199,9807,0,31,1,500000,0,, +Fiji 1956 / UTM zone 60S,3141,4721,16160,9807,0,177,0.9996,500000,10000000,, +Fiji 1956 / UTM zone 1S,3142,4721,16101,9807,0,-177,0.9996,500000,10000000,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 6,3146,4284,16266,9807,0,18,1,6500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E,3147,4284,16366,9807,0,18,1,500000,0,, +Indian 1960 / UTM zone 48N,3148,4131,16048,9807,0,105,0.9996,500000,0,, +Indian 1960 / UTM zone 49N,3149,4131,16049,9807,0,111,0.9996,500000,0,, +ST74,3152,4619,19876,9807,0,18.0328044,0.99999425,100178.1808,-6500614.7836,, +NAD83(CSRS) / BC Albers,3153,4617,19984,9822,45,-126,,1000000,0,-126,50 +NAD83(CSRS) / UTM zone 7N,3154,4617,16007,9807,0,-141,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 8N,3155,4617,16008,9807,0,-135,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 9N,3156,4617,16009,9807,0,-129,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 10N,3157,4617,16010,9807,0,-123,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 14N,3158,4617,16014,9807,0,-99,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 15N,3159,4617,16015,9807,0,-93,0.9996,500000,0,, +NAD83(CSRS) / UTM zone 16N,3160,4617,16016,9807,0,-87,0.9996,500000,0,, +NAD83 / Ontario MNR Lambert,3161,4269,19875,9802,0,-85,,930000,6430000,44.5,53.5 +NAD83(CSRS) / Ontario MNR Lambert,3162,4617,19875,9802,0,-85,,930000,6430000,44.5,53.5 +RGNC91-93 / Lambert New Caledonia,3163,4749,19981,9802,-21.3,166,,400000,300000,-20.4,-22.2 +ST87 Ouvea / UTM zone 58S,3164,4750,16158,9807,0,165,0.9996,500000,10000000,, +NEA74 Noumea / Noumea Lambert,3165,4644,19873,9802,-22.16108903,166.26327327,,0.66,1.02,-22.14408903,-22.17408903 +NEA74 Noumea / Noumea Lambert 2,3166,4644,19874,9802,-22.1611,166.2633,,8.313,-2.354,-22.1441,-22.1741 +RGNC91-93 / UTM zone 57S,3169,4749,16157,9807,0,159,0.9996,500000,10000000,, +RGNC91-93 / UTM zone 58S,3170,4749,16158,9807,0,165,0.9996,500000,10000000,, +RGNC91-93 / UTM zone 59S,3171,4749,16159,9807,0,171,0.9996,500000,10000000,, +IGN53 Mare / UTM zone 59S,3172,4641,16159,9807,0,171,0.9996,500000,10000000,, +NAD83 / Great Lakes Albers,3174,4269,15397,9822,45.568977,-84.455955,,1000000,1000000,-84.455955,42.122774 +NAD83 / Great Lakes and St Lawrence Albers,3175,4269,15398,9822,45.568977,-83.248627,,1000000,1000000,-83.248627,42.122774 +Indian 1960 / TM 106 NE,3176,4131,16506,9807,0,106,0.9996,500000,0,, +LGD2006 / Libya TM,3177,4754,18319,9807,0,17,0.9965,1000000,0,, +GR96 / UTM zone 18N,3178,4747,16018,9807,0,-75,0.9996,500000,0,, +GR96 / UTM zone 19N,3179,4747,16019,9807,0,-69,0.9996,500000,0,, +GR96 / UTM zone 20N,3180,4747,16020,9807,0,-63,0.9996,500000,0,, +GR96 / UTM zone 21N,3181,4747,16021,9807,0,-57,0.9996,500000,0,, +GR96 / UTM zone 22N,3182,4747,16022,9807,0,-51,0.9996,500000,0,, +GR96 / UTM zone 23N,3183,4747,16023,9807,0,-45,0.9996,500000,0,, +GR96 / UTM zone 24N,3184,4747,16024,9807,0,-39,0.9996,500000,0,, +GR96 / UTM zone 25N,3185,4747,16025,9807,0,-33,0.9996,500000,0,, +GR96 / UTM zone 26N,3186,4747,16026,9807,0,-27,0.9996,500000,0,, +GR96 / UTM zone 27N,3187,4747,16027,9807,0,-21,0.9996,500000,0,, +GR96 / UTM zone 28N,3188,4747,16028,9807,0,-15,0.9996,500000,0,, +GR96 / UTM zone 29N,3189,4747,16029,9807,0,-9,0.9996,500000,0,, +LGD2006 / Libya TM zone 5,3190,4754,18310,9807,0,9,0.99995,200000,0,, +LGD2006 / Libya TM zone 6,3191,4754,18311,9807,0,11,0.99995,200000,0,, +LGD2006 / Libya TM zone 7,3192,4754,18312,9807,0,13,0.99995,200000,0,, +LGD2006 / Libya TM zone 8,3193,4754,18313,9807,0,15,0.99995,200000,0,, +LGD2006 / Libya TM zone 9,3194,4754,18314,9807,0,17,0.99995,200000,0,, +LGD2006 / Libya TM zone 10,3195,4754,18315,9807,0,19,0.99995,200000,0,, +LGD2006 / Libya TM zone 11,3196,4754,18316,9807,0,21,0.99995,200000,0,, +LGD2006 / Libya TM zone 12,3197,4754,18317,9807,0,23,0.99995,200000,0,, +LGD2006 / Libya TM zone 13,3198,4754,18318,9807,0,25,0.99995,200000,0,, +LGD2006 / UTM zone 32N,3199,4754,16032,9807,0,9,0.9996,500000,0,, +FD58 / Iraq zone,3200,4132,19906,9801,32.3,45,0.9987864078,1500000,1166200,, +LGD2006 / UTM zone 33N,3201,4754,16033,9807,0,15,0.9996,500000,0,, +LGD2006 / UTM zone 34N,3202,4754,16034,9807,0,21,0.9996,500000,0,, +LGD2006 / UTM zone 35N,3203,4754,16035,9807,0,27,0.9996,500000,0,, +WGS 84 / SCAR IMW SP19-20,3204,4326,17204,9802,-90,-66,,0,0,-60.4,-63.2 +WGS 84 / SCAR IMW SP21-22,3205,4326,17205,9802,-90,-54,,0,0,-60.4,-63.2 +WGS 84 / SCAR IMW SP23-24,3206,4326,17206,9802,-90,-42,,0,0,-60.4,-63.2 +WGS 84 / SCAR IMW SQ01-02,3207,4326,17207,9802,-90,-174,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ19-20,3208,4326,17208,9802,-90,-66,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ21-22,3209,4326,17209,9802,-90,-54,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ37-38,3210,4326,17210,9802,-90,42,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ39-40,3211,4326,17211,9802,-90,54,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ41-42,3212,4326,17212,9802,-90,66,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ43-44,3213,4326,17213,9802,-90,78,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ45-46,3214,4326,17214,9802,-90,90,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ47-48,3215,4326,17215,9802,-90,102,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ49-50,3216,4326,17216,9802,-90,114,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ51-52,3217,4326,17217,9802,-90,126,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ53-54,3218,4326,17218,9802,-90,138,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ55-56,3219,4326,17219,9802,-90,150,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SQ57-58,3220,4326,17220,9802,-90,162,,0,0,-64.4,-67.2 +WGS 84 / SCAR IMW SR13-14,3221,4326,17221,9802,-90,-102,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR15-16,3222,4326,17222,9802,-90,-90,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR17-18,3223,4326,17223,9802,-90,-78,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR19-20,3224,4326,17224,9802,-90,-66,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR27-28,3225,4326,17225,9802,-90,-18,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR29-30,3226,4326,17226,9802,-90,-6,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR31-32,3227,4326,17227,9802,-90,6,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR33-34,3228,4326,17228,9802,-90,18,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR35-36,3229,4326,17229,9802,-90,30,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR37-38,3230,4326,17230,9802,-90,42,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR39-40,3231,4326,17231,9802,-90,54,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR41-42,3232,4326,17232,9802,-90,66,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR43-44,3233,4326,17233,9802,-90,78,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR45-46,3234,4326,17234,9802,-90,90,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR47-48,3235,4326,17235,9802,-90,102,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR49-50,3236,4326,17236,9802,-90,114,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR51-52,3237,4326,17237,9802,-90,126,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR53-54,3238,4326,17238,9802,-90,138,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR55-56,3239,4326,17239,9802,-90,150,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR57-58,3240,4326,17240,9802,-90,162,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SR59-60,3241,4326,17241,9802,-90,174,,0,0,-68.4,-71.2 +WGS 84 / SCAR IMW SS04-06,3242,4326,17242,9802,-90,-153,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS07-09,3243,4326,17243,9802,-90,-135,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS10-12,3244,4326,17244,9802,-90,-117,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS13-15,3245,4326,17245,9802,-90,-99,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS16-18,3246,4326,17246,9802,-90,-81,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS19-21,3247,4326,17247,9802,-90,-63,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS25-27,3248,4326,17248,9802,-90,-27,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS28-30,3249,4326,17249,9802,-90,-9,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS31-33,3250,4326,17250,9802,-90,9,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS34-36,3251,4326,17251,9802,-90,27,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS37-39,3252,4326,17252,9802,-90,45,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS40-42,3253,4326,17253,9802,-90,63,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS43-45,3254,4326,17254,9802,-90,81,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS46-48,3255,4326,17255,9802,-90,99,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS49-51,3256,4326,17256,9802,-90,117,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS52-54,3257,4326,17257,9802,-90,135,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS55-57,3258,4326,17258,9802,-90,153,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW SS58-60,3259,4326,17259,9802,-90,171,,0,0,-72.4,-75.2 +WGS 84 / SCAR IMW ST01-04,3260,4326,17260,9802,-90,-168,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST05-08,3261,4326,17261,9802,-90,-144,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST09-12,3262,4326,17262,9802,-90,-120,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST13-16,3263,4326,17263,9802,-90,-96,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST17-20,3264,4326,17264,9802,-90,-72,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST21-24,3265,4326,17265,9802,-90,-48,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST25-28,3266,4326,17266,9802,-90,-24,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST29-32,3267,4326,17267,9802,-90,0,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST33-36,3268,4326,17268,9802,-90,24,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST37-40,3269,4326,17269,9802,-90,48,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST41-44,3270,4326,17270,9802,-90,72,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST45-48,3271,4326,17271,9802,-90,96,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST49-52,3272,4326,17272,9802,-90,120,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST53-56,3273,4326,17273,9802,-90,144,,0,0,-76.4,-79.2 +WGS 84 / SCAR IMW ST57-60,3274,4326,17274,9802,-90,168,,0,0,-76.4,-79.2 +WGS 84 / USGS Transantarctic Mountains,3294,4326,17294,9802,-78,162,,0,0,-76.4,-79.2 +Estonian Coordinate System of 1997,3301,4180,19938,9802,57.310319415,24,,500000,6375000,59.2,58 +Maupiti 83 / UTM zone 5S,3306,4692,16105,9807,0,-153,0.9996,500000,10000000,, +Nakhl-e Ghanem / UTM zone 39N,3307,4693,16039,9807,0,51,0.9996,500000,0,, +GDA94 / NSW Lambert,3308,4283,17364,9802,-33.25,147,,9300000,4500000,-30.75,-35.75 +NAD27 / California Albers,3309,4267,10420,9822,0,-120,,0,-4000000,-120,34 +NAD83 / California Albers,3310,4269,10420,9822,0,-120,,0,-4000000,-120,34 +NAD83(HARN) / California Albers,3311,4152,10420,9822,0,-120,,0,-4000000,-120,34 +CSG67 / UTM zone 21N,3312,4623,16021,9807,0,-57,0.9996,500000,0,, +RGFG95 / UTM zone 21N,3313,4624,16021,9807,0,-57,0.9996,500000,0,, +Katanga 1955 / Katanga Lambert,3314,4695,17401,9802,0,26,,0,0,-6.5,-11.5 +Katanga 1955 / Katanga TM,3315,4695,17402,9807,-9,26,0.9998,0,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5,3329,4179,16265,9807,0,15,1,5500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6,3330,4179,16266,9807,0,18,1,6500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7,3331,4179,16267,9807,0,21,1,7500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8,3332,4179,16268,9807,0,24,1,8500000,0,, +Pulkovo 1942(58) / Gauss-Kruger zone 3,3333,4179,16203,9807,0,15,1,3500000,0,, +Pulkovo 1942(58) / Gauss-Kruger zone 4,3334,4179,16204,9807,0,21,1,4500000,0,, +Pulkovo 1942(58) / Gauss-Kruger zone 5,3335,4179,16205,9807,0,27,1,5500000,0,, +IGN 1962 Kerguelen / UTM zone 42S,3336,4698,16142,9807,0,69,0.9996,500000,10000000,, +Le Pouce 1934 / Mauritius Grid,3337,4699,19899,9801,-20.114225,57.311858,1,1000000,1000000,, +NAD83 / Alaska Albers,3338,4269,15021,9822,50,-154,,0,0,-154,55 +IGCB 1955 / Congo TM zone 12,3339,4701,17412,9807,0,12,0.9999,500000,10000000,, +IGCB 1955 / Congo TM zone 14,3340,4701,17414,9807,0,14,0.9999,500000,10000000,, +IGCB 1955 / Congo TM zone 16,3341,4701,17416,9807,0,16,0.9999,500000,10000000,, +IGCB 1955 / UTM zone 33S,3342,4701,16133,9807,0,15,0.9996,500000,10000000,, +Mauritania 1999 / UTM zone 28N,3343,4702,16028,9807,0,-15,0.9996,500000,0,, +Mauritania 1999 / UTM zone 29N,3344,4702,16029,9807,0,-9,0.9996,500000,0,, +Mauritania 1999 / UTM zone 30N,3345,4702,16030,9807,0,-3,0.9996,500000,0,, +LKS94 / Lithuania TM,3346,4669,19934,9807,0,24,0.9998,500000,0,, +NAD83 / Statistics Canada Lambert,3347,4269,19897,9802,63.390675,-91.52,,6200000,3000000,49,77 +NAD83(CSRS) / Statistics Canada Lambert,3348,4617,19897,9802,63.390675,-91.52,,6200000,3000000,49,77 +Pulkovo 1942 / CS63 zone C0,3350,4284,18450,9807,0.06,21.57,1,250000,0,, +Pulkovo 1942 / CS63 zone C1,3351,4284,18451,9807,0.06,24.57,1,1250000,0,, +Pulkovo 1942 / CS63 zone C2,3352,4284,18452,9807,0.06,27.57,1,2250000,0,, +Egypt Gulf of Suez S-650 TL / Red Belt,3355,4706,18072,9807,30,31,1,615000,810000,, +Little Cayman 1961 / UTM zone 17N,3357,4726,16017,9807,0,-81,0.9996,500000,0,, +NAD83(HARN) / North Carolina,3358,4152,13230,9802,33.45,-79,,609601.22,0,36.1,34.2 +NAD83(HARN) / North Carolina (ftUS),3359,4152,15346,9802,33.45,-79,,2000000,0,36.1,34.2 +NAD83(HARN) / South Carolina,3360,4152,13930,9802,31.5,-81,,609600,0,34.5,32.3 +NAD83(HARN) / South Carolina (ft),3361,4152,15355,9802,31.5,-81,,2000000,0,34.5,32.3 +NAD83(HARN) / Pennsylvania North,3362,4152,13731,9802,40.1,-77.45,,600000,0,41.57,40.53 +NAD83(HARN) / Pennsylvania North (ftUS),3363,4152,15353,9802,40.1,-77.45,,1968500,0,41.57,40.53 +NAD83(HARN) / Pennsylvania South,3364,4152,13732,9802,39.2,-77.45,,600000,0,40.58,39.56 +NAD83(HARN) / Pennsylvania South (ftUS),3365,4152,15354,9802,39.2,-77.45,,1968500,0,40.58,39.56 +NAD27 / UTM zone 59N,3370,4267,16059,9807,0,171,0.9996,500000,0,, +NAD27 / UTM zone 60N,3371,4267,16060,9807,0,177,0.9996,500000,0,, +NAD83 / UTM zone 59N,3372,4269,16059,9807,0,171,0.9996,500000,0,, +NAD83 / UTM zone 60N,3373,4269,16060,9807,0,177,0.9996,500000,0,, +KKJ / Finland zone 0,3386,4123,18180,9807,0,18,1,500000,0,, +KKJ / Finland zone 5,3387,4123,18205,9807,0,33,1,5500000,0,, +Pulkovo 1942 / 3-degree Gauss-Kruger zone 60,3389,4284,16099,9807,0,180,1,60500000,0,, +Karbala 1979 / UTM zone 37N,3391,4743,16037,9807,0,39,0.9996,500000,0,, +Karbala 1979 / UTM zone 38N,3392,4743,16038,9807,0,45,0.9996,500000,0,, +Karbala 1979 / UTM zone 39N,3393,4743,16039,9807,0,51,0.9996,500000,0,, +Nahrwan 1934 / Iraq zone,3394,4744,19906,9801,32.3,45,0.9987864078,1500000,1166200,, +NAD83 / Alberta 10-TM (Forest),3400,4269,19881,9807,0,-115,0.9992,500000,0,, +NAD83 / Alberta 10-TM (Resource),3401,4269,19882,9807,0,-115,0.9992,0,0,, +NAD83(CSRS) / Alberta 10-TM (Forest),3402,4617,19881,9807,0,-115,0.9992,500000,0,, +NAD83(CSRS) / Alberta 10-TM (Resource),3403,4617,19882,9807,0,-115,0.9992,0,0,, +NAD83(HARN) / North Carolina (ftUS),3404,4152,15346,9802,33.45,-79,,2000000,0,36.1,34.2 +ETRS89 / Austria Lambert,3416,4258,19947,9802,47.3,13.2,,400000,400000,49,46 +NAD83 / Iowa North (ftUS),3417,4269,15377,9802,41.3,-93.3,,4921250,3280833.3333,43.16,42.04 +NAD83 / Iowa South (ftUS),3418,4269,15378,9802,40,-93.3,,1640416.6667,0,41.47,40.37 +NAD83 / Kansas North (ftUS),3419,4269,15379,9802,38.2,-98,,1312333.3333,0,39.47,38.43 +NAD83 / Kansas South (ftUS),3420,4269,15380,9802,36.4,-98.3,,1312333.3333,1312333.3333,38.34,37.16 +NAD83 / Nevada East (ftUS),3421,4269,15381,9807,34.45,-115.35,0.9999,656166.6667,26246666.6667,, +NAD83 / Nevada Central (ftUS),3422,4269,15382,9807,34.45,-116.4,0.9999,1640416.6667,19685000,, +NAD83 / Nevada West (ftUS),3423,4269,15383,9807,34.45,-118.35,0.9999,2624666.6667,13123333.3333,, +NAD83 / New Jersey (ftUS),3424,4269,15384,9807,38.5,-74.3,0.9999,492125,0,, +NAD83(HARN) / Iowa North (ftUS),3425,4152,15377,9802,41.3,-93.3,,4921250,3280833.3333,43.16,42.04 +NAD83(HARN) / Iowa South (ftUS),3426,4152,15378,9802,40,-93.3,,1640416.6667,0,41.47,40.37 +NAD83(HARN) / Kansas North (ftUS),3427,4152,15379,9802,38.2,-98,,1312333.3333,0,39.47,38.43 +NAD83(HARN) / Kansas South (ftUS),3428,4152,15380,9802,36.4,-98.3,,1312333.3333,1312333.3333,38.34,37.16 +NAD83(HARN) / Nevada East (ftUS),3429,4152,15381,9807,34.45,-115.35,0.9999,656166.6667,26246666.6667,, +NAD83(HARN) / Nevada Central (ftUS),3430,4152,15382,9807,34.45,-116.4,0.9999,1640416.6667,19685000,, +NAD83(HARN) / Nevada West (ftUS),3431,4152,15383,9807,34.45,-118.35,0.9999,2624666.6667,13123333.3333,, +NAD83(HARN) / New Jersey (ftUS),3432,4152,15384,9807,38.5,-74.3,0.9999,492125,0,, +NAD83 / Arkansas North (ftUS),3433,4269,15385,9802,34.2,-92,,1312333.3333,0,36.14,34.56 +NAD83 / Arkansas South (ftUS),3434,4269,15386,9802,32.4,-92,,1312333.3333,1312333.3333,34.46,33.18 +NAD83 / Illinois East (ftUS),3435,4269,15387,9807,36.4,-88.2,0.999975,984250,0,, +NAD83 / Illinois West (ftUS),3436,4269,15388,9807,36.4,-90.1,0.999941177,2296583.3333,0,, +NAD83 / New Hampshire (ftUS),3437,4269,15389,9807,42.3,-71.4,0.999966667,984250,0,, +NAD83 / Rhode Island (ftUS),3438,4269,15390,9807,41.05,-71.3,0.99999375,328083.3333,0,, +NAD83(HARN) / Arkansas North (ftUS),3441,4152,15385,9802,34.2,-92,,1312333.3333,0,36.14,34.56 +NAD83(HARN) / Arkansas South (ftUS),3442,4152,15386,9802,32.4,-92,,1312333.3333,1312333.3333,34.46,33.18 +NAD83(HARN) / Illinois East (ftUS),3443,4152,15387,9807,36.4,-88.2,0.999975,984250,0,, +NAD83(HARN) / Illinois West (ftUS),3444,4152,15388,9807,36.4,-90.1,0.999941177,2296583.3333,0,, +NAD83(HARN) / New Hampshire (ftUS),3445,4152,15389,9807,42.3,-71.4,0.999966667,984250,0,, +NAD83(HARN) / Rhode Island (ftUS),3446,4152,15390,9807,41.05,-71.3,0.99999375,328083.3333,0,, +ETRS89 / Belgian Lambert 2005,3447,4258,19862,9802,50.4752134,4.2133177,,150328,166262,49.5,51.1 +JAD2001 / Jamaica Metric Grid,3448,4758,19860,9801,18,-77,1,750000,650000,, +JAD2001 / UTM zone 17N,3449,4758,16017,9807,0,-81,0.9996,500000,0,, +JAD2001 / UTM zone 18N,3450,4758,16018,9807,0,-75,0.9996,500000,0,, +NAD83 / Louisiana North (ftUS),3451,4269,15391,9802,30.3,-92.3,,3280833.3333,0,32.4,31.1 +NAD83 / Louisiana South (ftUS),3452,4269,15392,9802,28.3,-91.2,,3280833.3333,0,30.42,29.18 +NAD83 / Louisiana Offshore (ftUS),3453,4269,15393,9802,25.3,-91.2,,3280833.3333,0,27.5,26.1 +NAD83 / South Dakota North (ftUS),3454,4269,15395,9802,42.2,-100.2,,1968500,0,44.24,42.5 +NAD83 / South Dakota South (ftUS),3455,4269,15395,9802,42.2,-100.2,,1968500,0,44.24,42.5 +NAD83(HARN) / Louisiana North (ftUS),3456,4152,15391,9802,30.3,-92.3,,3280833.3333,0,32.4,31.1 +NAD83(HARN) / Louisiana South (ftUS),3457,4152,15392,9802,28.3,-91.2,,3280833.3333,0,30.42,29.18 +NAD83(HARN) / South Dakota North (ftUS),3458,4152,15394,9802,43.5,-100,,1968500,0,45.41,44.25 +NAD83(HARN) / South Dakota South (ftUS),3459,4152,15395,9802,42.2,-100.2,,1968500,0,44.24,42.5 +Dabola 1981 / UTM zone 28N,3461,4155,16028,9807,0,-15,0.9996,500000,0,, +Dabola 1981 / UTM zone 29N,3462,4155,16029,9807,0,-9,0.9996,500000,0,, +NAD83 / Maine CS2000 Central,3463,4269,11854,9807,43.3,-69.073,0.99998,500000,0,, +NAD83(HARN) / Maine CS2000 Central,3464,4152,11854,9807,43.3,-69.073,0.99998,500000,0,, +NAD83(NSRS2007) / Alabama East,3465,4759,10131,9807,30.3,-85.5,0.99996,200000,0,, +NAD83(NSRS2007) / Alabama West,3466,4759,10132,9807,30,-87.3,0.999933333,600000,0,, +NAD83(NSRS2007) / Alaska Albers,3467,4759,15021,9822,50,-154,,0,0,-154,55 +NAD83(NSRS2007) / Alaska zone 2,3469,4759,15032,9807,54,-142,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 3,3470,4759,15033,9807,54,-146,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 4,3471,4759,15034,9807,54,-150,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 5,3472,4759,15035,9807,54,-154,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 6,3473,4759,15036,9807,54,-158,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 7,3474,4759,15037,9807,54,-162,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 8,3475,4759,15038,9807,54,-166,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 9,3476,4759,15039,9807,54,-170,0.9999,500000,0,, +NAD83(NSRS2007) / Alaska zone 10,3477,4759,15040,9802,51,-176,,1000000,0,53.5,51.5 +NAD83(NSRS2007) / Arizona Central,3478,4759,10232,9807,31,-111.55,0.9999,213360,0,, +NAD83(NSRS2007) / Arizona Central (ft),3479,4759,15305,9807,31,-111.55,0.9999,700000,0,, +NAD83(NSRS2007) / Arizona East,3480,4759,10231,9807,31,-110.1,0.9999,213360,0,, +NAD83(NSRS2007) / Arizona East (ft),3481,4759,15304,9807,31,-110.1,0.9999,700000,0,, +NAD83(NSRS2007) / Arizona West,3482,4759,10233,9807,31,-113.45,0.999933333,213360,0,, +NAD83(NSRS2007) / Arizona West (ft),3483,4759,15306,9807,31,-113.45,0.999933333,700000,0,, +NAD83(NSRS2007) / Arkansas North,3484,4759,10331,9802,34.2,-92,,400000,0,36.14,34.56 +NAD83(NSRS2007) / Arkansas North (ftUS),3485,4759,15385,9802,34.2,-92,,1312333.3333,0,36.14,34.56 +NAD83(NSRS2007) / Arkansas South,3486,4759,10332,9802,32.4,-92,,400000,400000,34.46,33.18 +NAD83(NSRS2007) / Arkansas South (ftUS),3487,4759,15386,9802,32.4,-92,,1312333.3333,1312333.3333,34.46,33.18 +NAD83(NSRS2007) / California Albers,3488,4759,10420,9822,0,-120,,0,-4000000,-120,34 +NAD83(NSRS2007) / California zone 1,3489,4759,10431,9802,39.2,-122,,2000000,500000,41.4,40 +NAD83(NSRS2007) / California zone 1 (ftUS),3490,4759,15307,9802,39.2,-122,,6561666.667,1640416.667,41.4,40 +NAD83(NSRS2007) / California zone 2,3491,4759,10432,9802,37.4,-122,,2000000,500000,39.5,38.2 +NAD83(NSRS2007) / California zone 2 (ftUS),3492,4759,15308,9802,37.4,-122,,6561666.667,1640416.667,39.5,38.2 +NAD83(NSRS2007) / California zone 3,3493,4759,10433,9802,36.3,-120.3,,2000000,500000,38.26,37.04 +NAD83(NSRS2007) / California zone 3 (ftUS),3494,4759,15309,9802,36.3,-120.3,,6561666.667,1640416.667,38.26,37.04 +NAD83(NSRS2007) / California zone 4,3495,4759,10434,9802,35.2,-119,,2000000,500000,37.15,36 +NAD83(NSRS2007) / California zone 4 (ftUS),3496,4759,15310,9802,35.2,-119,,6561666.667,1640416.667,37.15,36 +NAD83(NSRS2007) / California zone 5,3497,4759,10435,9802,33.3,-118,,2000000,500000,35.28,34.02 +NAD83(NSRS2007) / California zone 5 (ftUS),3498,4759,15311,9802,33.3,-118,,6561666.667,1640416.667,35.28,34.02 +NAD83(NSRS2007) / California zone 6,3499,4759,10436,9802,32.1,-116.15,,2000000,500000,33.53,32.47 +NAD83(NSRS2007) / California zone 6 (ftUS),3500,4759,15312,9802,32.1,-116.15,,6561666.667,1640416.667,33.53,32.47 +NAD83(NSRS2007) / Colorado Central,3501,4759,10532,9802,37.5,-105.3,,914401.8289,304800.6096,39.45,38.27 +NAD83(NSRS2007) / Colorado Central (ftUS),3502,4759,15314,9802,37.5,-105.3,,3000000,1000000,39.45,38.27 +NAD83(NSRS2007) / Colorado North,3503,4759,10531,9802,39.2,-105.3,,914401.8289,304800.6096,40.47,39.43 +NAD83(NSRS2007) / Colorado North (ftUS),3504,4759,15313,9802,39.2,-105.3,,3000000,1000000,40.47,39.43 +NAD83(NSRS2007) / Colorado South,3505,4759,10533,9802,36.4,-105.3,,914401.8289,304800.6096,38.26,37.14 +NAD83(NSRS2007) / Colorado South (ftUS),3506,4759,15315,9802,36.4,-105.3,,3000000,1000000,38.26,37.14 +NAD83(NSRS2007) / Connecticut,3507,4759,10630,9802,40.5,-72.45,,304800.6096,152400.3048,41.52,41.12 +NAD83(NSRS2007) / Connecticut (ftUS),3508,4759,15316,9802,40.5,-72.45,,1000000,500000,41.52,41.12 +NAD83(NSRS2007) / Delaware,3509,4759,10730,9807,38,-75.25,0.999995,200000,0,, +NAD83(NSRS2007) / Delaware (ftUS),3510,4759,15317,9807,38,-75.25,0.999995,656166.667,0,, +NAD83(NSRS2007) / Florida East,3511,4759,10931,9807,24.2,-81,0.999941177,200000,0,, +NAD83(NSRS2007) / Florida East (ftUS),3512,4759,15318,9807,24.2,-81,0.999941177,656166.667,0,, +NAD83(NSRS2007) / Florida GDL Albers,3513,4759,10934,9822,24,-84,,400000,0,-84,24 +NAD83(NSRS2007) / Florida North,3514,4759,10933,9802,29,-84.3,,600000,0,30.45,29.35 +NAD83(NSRS2007) / Florida North (ftUS),3515,4759,15320,9802,29,-84.3,,1968500,0,30.45,29.35 +NAD83(NSRS2007) / Florida West,3516,4759,10932,9807,24.2,-82,0.999941177,200000,0,, +NAD83(NSRS2007) / Florida West (ftUS),3517,4759,15319,9807,24.2,-82,0.999941177,656166.667,0,, +NAD83(NSRS2007) / Georgia East,3518,4759,11031,9807,30,-82.1,0.9999,200000,0,, +NAD83(NSRS2007) / Georgia East (ftUS),3519,4759,15321,9807,30,-82.1,0.9999,656166.667,0,, +NAD83(NSRS2007) / Georgia West,3520,4759,11032,9807,30,-84.1,0.9999,700000,0,, +NAD83(NSRS2007) / Georgia West (ftUS),3521,4759,15322,9807,30,-84.1,0.9999,2296583.333,0,, +NAD83(NSRS2007) / Idaho Central,3522,4759,11132,9807,41.4,-114,0.999947368,500000,0,, +NAD83(NSRS2007) / Idaho Central (ftUS),3523,4759,15324,9807,41.4,-114,0.999947368,1640416.667,0,, +NAD83(NSRS2007) / Idaho East,3524,4759,11131,9807,41.4,-112.1,0.999947368,200000,0,, +NAD83(NSRS2007) / Idaho East (ftUS),3525,4759,15323,9807,41.4,-112.1,0.999947368,656166.667,0,, +NAD83(NSRS2007) / Idaho West,3526,4759,11133,9807,41.4,-115.45,0.999933333,800000,0,, +NAD83(NSRS2007) / Idaho West (ftUS),3527,4759,15325,9807,41.4,-115.45,0.999933333,2624666.667,0,, +NAD83(NSRS2007) / Illinois East,3528,4759,11231,9807,36.4,-88.2,0.999975,300000,0,, +NAD83(NSRS2007) / Illinois East (ftUS),3529,4759,15387,9807,36.4,-88.2,0.999975,984250,0,, +NAD83(NSRS2007) / Illinois West,3530,4759,11232,9807,36.4,-90.1,0.999941177,700000,0,, +NAD83(NSRS2007) / Illinois West (ftUS),3531,4759,15388,9807,36.4,-90.1,0.999941177,2296583.3333,0,, +NAD83(NSRS2007) / Indiana East,3532,4759,11331,9807,37.3,-85.4,0.999966667,100000,250000,, +NAD83(NSRS2007) / Indiana East (ftUS),3533,4759,15372,9807,37.3,-85.4,0.999966667,328083.333,820208.333,, +NAD83(NSRS2007) / Indiana West,3534,4759,11332,9807,37.3,-87.05,0.999966667,900000,250000,, +NAD83(NSRS2007) / Indiana West (ftUS),3535,4759,15373,9807,37.3,-87.05,0.999966667,2952750,820208.333,, +NAD83(NSRS2007) / Iowa North,3536,4759,11431,9802,41.3,-93.3,,1500000,1000000,43.16,42.04 +NAD83(NSRS2007) / Iowa North (ftUS),3537,4759,15377,9802,41.3,-93.3,,4921250,3280833.3333,43.16,42.04 +NAD83(NSRS2007) / Iowa South,3538,4759,11432,9802,40,-93.3,,500000,0,41.47,40.37 +NAD83(NSRS2007) / Iowa South (ftUS),3539,4759,15378,9802,40,-93.3,,1640416.6667,0,41.47,40.37 +NAD83(NSRS2007) / Kansas North,3540,4759,11531,9802,38.2,-98,,400000,0,39.47,38.43 +NAD83(NSRS2007) / Kansas North (ftUS),3541,4759,15379,9802,38.2,-98,,1312333.3333,0,39.47,38.43 +NAD83(NSRS2007) / Kansas South,3542,4759,11532,9802,36.4,-98.3,,400000,400000,38.34,37.16 +NAD83(NSRS2007) / Kansas South (ftUS),3543,4759,15380,9802,36.4,-98.3,,1312333.3333,1312333.3333,38.34,37.16 +NAD83(NSRS2007) / Kentucky North,3544,4759,15303,9802,37.3,-84.15,,500000,0,37.58,38.58 +NAD83(NSRS2007) / Kentucky North (ftUS),3545,4759,15328,9802,37.3,-84.15,,1640416.667,0,37.58,38.58 +NAD83(NSRS2007) / Kentucky Single Zone,3546,4759,11630,9802,36.2,-85.45,,1500000,1000000,37.05,38.4 +NAD83(NSRS2007) / Kentucky Single Zone (ftUS),3547,4759,15375,9802,36.2,-85.45,,4921250,3280833.333,37.05,38.4 +NAD83(NSRS2007) / Kentucky South,3548,4759,11632,9802,36.2,-85.45,,500000,500000,37.56,36.44 +NAD83(NSRS2007) / Kentucky South (ftUS),3549,4759,15329,9802,36.2,-85.45,,1640416.667,1640416.667,37.56,36.44 +NAD83(NSRS2007) / Louisiana North,3550,4759,11731,9802,30.3,-92.3,,1000000,0,32.4,31.1 +NAD83(NSRS2007) / Louisiana North (ftUS),3551,4759,15391,9802,30.3,-92.3,,3280833.3333,0,32.4,31.1 +NAD83(NSRS2007) / Louisiana South,3552,4759,11732,9802,28.3,-91.2,,1000000,0,30.42,29.18 +NAD83(NSRS2007) / Louisiana South (ftUS),3553,4759,15392,9802,28.3,-91.2,,3280833.3333,0,30.42,29.18 +NAD83(NSRS2007) / Maine CS2000 Central,3554,4759,11854,9807,43.3,-69.073,0.99998,500000,0,, +NAD83(NSRS2007) / Maine CS2000 East,3555,4759,11851,9807,43.5,-67.523,0.99998,700000,0,, +NAD83(NSRS2007) / Maine CS2000 West,3556,4759,11853,9807,42.5,-70.223,0.99998,300000,0,, +NAD83(NSRS2007) / Maine East,3557,4759,11831,9807,43.4,-68.3,0.9999,300000,0,, +NAD83(NSRS2007) / Maine West,3558,4759,11832,9807,42.5,-70.1,0.999966667,900000,0,, +NAD83(NSRS2007) / Maryland,3559,4759,11930,9802,37.4,-77,,400000,0,39.27,38.18 +NAD83 / Utah North (ftUS),3560,4269,15297,9802,40.2,-111.3,,1640416.6667,3280833.3333,41.47,40.43 +Old Hawaiian / Hawaii zone 1,3561,4135,15101,9807,18.5,-155.3,0.999966667,500000,0,, +Old Hawaiian / Hawaii zone 2,3562,4135,15102,9807,20.2,-156.4,0.999966667,500000,0,, +Old Hawaiian / Hawaii zone 3,3563,4135,15103,9807,21.1,-158,0.99999,500000,0,, +Old Hawaiian / Hawaii zone 4,3564,4135,15104,9807,21.5,-159.3,0.99999,500000,0,, +Old Hawaiian / Hawaii zone 5,3565,4135,15105,9807,21.4,-160.1,1,500000,0,, +NAD83 / Utah Central (ftUS),3566,4269,15298,9802,38.2,-111.3,,1640416.6667,6561666.6667,40.39,39.01 +NAD83 / Utah South (ftUS),3567,4269,15299,9802,36.4,-111.3,,1640416.6667,9842500,38.21,37.13 +NAD83(HARN) / Utah North (ftUS),3568,4152,15297,9802,40.2,-111.3,,1640416.6667,3280833.3333,41.47,40.43 +NAD83(HARN) / Utah Central (ftUS),3569,4152,15298,9802,38.2,-111.3,,1640416.6667,6561666.6667,40.39,39.01 +NAD83(HARN) / Utah South (ftUS),3570,4152,15299,9802,36.4,-111.3,,1640416.6667,9842500,38.21,37.13 +WGS 84 / North Pole LAEA Bering Sea,3571,4326,17295,9820,90,180,,0,0,, +WGS 84 / North Pole LAEA Alaska,3572,4326,17296,9820,90,-150,,0,0,, +WGS 84 / North Pole LAEA Canada,3573,4326,17297,9820,90,-100,,0,0,, +WGS 84 / North Pole LAEA Atlantic,3574,4326,17298,9820,90,-40,,0,0,, +WGS 84 / North Pole LAEA Europe,3575,4326,17299,9820,90,10,,0,0,, +WGS 84 / North Pole LAEA Russia,3576,4326,17300,9820,90,90,,0,0,, +GDA94 / Australian Albers,3577,4283,17365,9822,0,132,,0,0,132,-18 +NAD83 / Yukon Albers,3578,4269,19858,9822,59,-132.3,,500000,500000,-132.3,61.4 +NAD83(CSRS) / Yukon Albers,3579,4617,19858,9822,59,-132.3,,500000,500000,-132.3,61.4 +NAD83 / NWT Lambert,3580,4269,19857,9802,0,-112,,0,0,62,70 +NAD83(CSRS) / NWT Lambert,3581,4617,19857,9802,0,-112,,0,0,62,70 +NAD83(NSRS2007) / Maryland (ftUS),3582,4759,15330,9802,37.4,-77,,1312333.333,0,39.27,38.18 +NAD83(NSRS2007) / Massachusetts Island,3583,4759,12032,9802,41,-70.3,,500000,0,41.29,41.17 +NAD83(NSRS2007) / Massachusetts Island (ftUS),3584,4759,15332,9802,41,-70.3,,1640416.667,0,41.29,41.17 +NAD83(NSRS2007) / Massachusetts Mainland,3585,4759,12031,9802,41,-71.3,,200000,750000,42.41,41.43 +NAD83(NSRS2007) / Massachusetts Mainland (ftUS),3586,4759,15331,9802,41,-71.3,,656166.667,2460625,42.41,41.43 +NAD83(NSRS2007) / Michigan Central,3587,4759,12142,9802,43.19,-84.22,,6000000,0,45.42,44.11 +NAD83(NSRS2007) / Michigan Central (ft),3588,4759,15334,9802,43.19,-84.22,,19685039.37,0,45.42,44.11 +NAD83(NSRS2007) / Michigan North,3589,4759,12141,9802,44.47,-87,,8000000,0,47.05,45.29 +NAD83(NSRS2007) / Michigan North (ft),3590,4759,15333,9802,44.47,-87,,26246719.16,0,47.05,45.29 +NAD83(NSRS2007) / Michigan South,3592,4759,12143,9802,41.3,-84.22,,4000000,0,43.4,42.06 +NAD83(NSRS2007) / Michigan South (ft),3593,4759,15335,9802,41.3,-84.22,,13123359.58,0,43.4,42.06 +NAD83(NSRS2007) / Minnesota Central,3594,4759,12232,9802,45,-94.15,,800000,100000,47.03,45.37 +NAD83(NSRS2007) / Minnesota North,3595,4759,12231,9802,46.3,-93.06,,800000,100000,48.38,47.02 +NAD83(NSRS2007) / Minnesota South,3596,4759,12233,9802,43,-94,,800000,100000,45.13,43.47 +NAD83(NSRS2007) / Mississippi East,3597,4759,12331,9807,29.3,-88.5,0.99995,300000,0,, +NAD83(NSRS2007) / Mississippi East (ftUS),3598,4759,15336,9807,29.3,-88.5,0.99995,984250,0,, +NAD83(NSRS2007) / Mississippi West,3599,4759,12332,9807,29.3,-90.2,0.99995,700000,0,, +NAD83(NSRS2007) / Mississippi West (ftUS),3600,4759,15337,9807,29.3,-90.2,0.99995,2296583.333,0,, +NAD83(NSRS2007) / Missouri Central,3601,4759,12432,9807,35.5,-92.3,0.999933333,500000,0,, +NAD83(NSRS2007) / Missouri East,3602,4759,12431,9807,35.5,-90.3,0.999933333,250000,0,, +NAD83(NSRS2007) / Missouri West,3603,4759,12433,9807,36.1,-94.3,0.999941177,850000,0,, +NAD83(NSRS2007) / Montana,3604,4759,12530,9802,44.15,-109.3,,600000,0,49,45 +NAD83(NSRS2007) / Montana (ft),3605,4759,15338,9802,44.15,-109.3,,1968503.937,0,49,45 +NAD83(NSRS2007) / Nebraska,3606,4759,12630,9802,39.5,-100,,500000,0,43,40 +NAD83(NSRS2007) / Nevada Central,3607,4759,12732,9807,34.45,-116.4,0.9999,500000,6000000,, +NAD83(NSRS2007) / Nevada Central (ftUS),3608,4759,15382,9807,34.45,-116.4,0.9999,1640416.6667,19685000,, +NAD83(NSRS2007) / Nevada East,3609,4759,12731,9807,34.45,-115.35,0.9999,200000,8000000,, +NAD83(NSRS2007) / Nevada East (ftUS),3610,4759,15381,9807,34.45,-115.35,0.9999,656166.6667,26246666.6667,, +NAD83(NSRS2007) / Nevada West,3611,4759,12733,9807,34.45,-118.35,0.9999,800000,4000000,, +NAD83(NSRS2007) / Nevada West (ftUS),3612,4759,15383,9807,34.45,-118.35,0.9999,2624666.6667,13123333.3333,, +NAD83(NSRS2007) / New Hampshire,3613,4759,12830,9807,42.3,-71.4,0.999966667,300000,0,, +NAD83(NSRS2007) / New Hampshire (ftUS),3614,4759,15389,9807,42.3,-71.4,0.999966667,984250,0,, +NAD83(NSRS2007) / New Jersey,3615,4759,12930,9807,38.5,-74.3,0.9999,150000,0,, +NAD83(NSRS2007) / New Jersey (ftUS),3616,4759,15384,9807,38.5,-74.3,0.9999,492125,0,, +NAD83(NSRS2007) / New Mexico Central,3617,4759,13032,9807,31,-106.15,0.9999,500000,0,, +NAD83(NSRS2007) / New Mexico Central (ftUS),3618,4759,15340,9807,31,-106.15,0.9999,1640416.667,0,, +NAD83(NSRS2007) / New Mexico East,3619,4759,13031,9807,31,-104.2,0.999909091,165000,0,, +NAD83(NSRS2007) / New Mexico East (ftUS),3620,4759,15339,9807,31,-104.2,0.999909091,541337.5,0,, +NAD83(NSRS2007) / New Mexico West,3621,4759,13033,9807,31,-107.5,0.999916667,830000,0,, +NAD83(NSRS2007) / New Mexico West (ftUS),3622,4759,15341,9807,31,-107.5,0.999916667,2723091.667,0,, +NAD83(NSRS2007) / New York Central,3623,4759,13132,9807,40,-76.35,0.9999375,250000,0,, +NAD83(NSRS2007) / New York Central (ftUS),3624,4759,15343,9807,40,-76.35,0.9999375,820208.333,0,, +NAD83(NSRS2007) / New York East,3625,4759,13131,9807,38.5,-74.3,0.9999,150000,0,, +NAD83(NSRS2007) / New York East (ftUS),3626,4759,15342,9807,38.5,-74.3,0.9999,492125,0,, +NAD83(NSRS2007) / New York Long Island,3627,4759,13134,9802,40.1,-74,,300000,0,41.02,40.4 +NAD83(NSRS2007) / New York Long Island (ftUS),3628,4759,15345,9802,40.1,-74,,984250,0,41.02,40.4 +NAD83(NSRS2007) / New York West,3629,4759,13133,9807,40,-78.35,0.9999375,350000,0,, +NAD83(NSRS2007) / New York West (ftUS),3630,4759,15344,9807,40,-78.35,0.9999375,1148291.667,0,, +NAD83(NSRS2007) / North Carolina,3631,4759,13230,9802,33.45,-79,,609601.22,0,36.1,34.2 +NAD83(NSRS2007) / North Carolina (ftUS),3632,4759,15346,9802,33.45,-79,,2000000,0,36.1,34.2 +NAD83(NSRS2007) / North Dakota North,3633,4759,13331,9802,47,-100.3,,600000,0,48.44,47.26 +NAD83(NSRS2007) / North Dakota North (ft),3634,4759,15347,9802,47,-100.3,,1968503.937,0,48.44,47.26 +NAD83(NSRS2007) / North Dakota South,3635,4759,13332,9802,45.4,-100.3,,600000,0,47.29,46.11 +NAD83(NSRS2007) / North Dakota South (ft),3636,4759,15348,9802,45.4,-100.3,,1968503.937,0,47.29,46.11 +NAD83(NSRS2007) / Ohio North,3637,4759,13431,9802,39.4,-82.3,,600000,0,41.42,40.26 +NAD83(NSRS2007) / Ohio South,3638,4759,13432,9802,38,-82.3,,600000,0,40.02,38.44 +NAD83(NSRS2007) / Oklahoma North,3639,4759,13531,9802,35,-98,,600000,0,36.46,35.34 +NAD83(NSRS2007) / Oklahoma North (ftUS),3640,4759,15349,9802,35,-98,,1968500,0,36.46,35.34 +NAD83(NSRS2007) / Oklahoma South,3641,4759,13532,9802,33.2,-98,,600000,0,35.14,33.56 +NAD83(NSRS2007) / Oklahoma South (ftUS),3642,4759,15350,9802,33.2,-98,,1968500,0,35.14,33.56 +NAD83(NSRS2007) / Oregon LCC (m),3643,4759,13633,9802,41.45,-120.3,,400000,0,43,45.3 +NAD83(NSRS2007) / Oregon GIC Lambert (ft),3644,4759,15374,9802,41.45,-120.3,,1312335.958,0,43,45.3 +NAD83(NSRS2007) / Oregon North,3645,4759,13631,9802,43.4,-120.3,,2500000,0,46,44.2 +NAD83(NSRS2007) / Oregon North (ft),3646,4759,15351,9802,43.4,-120.3,,8202099.738,0,46,44.2 +NAD83(NSRS2007) / Oregon South,3647,4759,13632,9802,41.4,-120.3,,1500000,0,44,42.2 +NAD83(NSRS2007) / Oregon South (ft),3648,4759,15352,9802,41.4,-120.3,,4921259.843,0,44,42.2 +NAD83(NSRS2007) / Pennsylvania North,3649,4759,13731,9802,40.1,-77.45,,600000,0,41.57,40.53 +NAD83(NSRS2007) / Pennsylvania North (ftUS),3650,4759,15353,9802,40.1,-77.45,,1968500,0,41.57,40.53 +NAD83(NSRS2007) / Pennsylvania South,3651,4759,13732,9802,39.2,-77.45,,600000,0,40.58,39.56 +NAD83(NSRS2007) / Pennsylvania South (ftUS),3652,4759,15354,9802,39.2,-77.45,,1968500,0,40.58,39.56 +NAD83(NSRS2007) / Rhode Island,3653,4759,13830,9807,41.05,-71.3,0.99999375,100000,0,, +NAD83(NSRS2007) / Rhode Island (ftUS),3654,4759,15390,9807,41.05,-71.3,0.99999375,328083.3333,0,, +NAD83(NSRS2007) / South Carolina,3655,4759,13930,9802,31.5,-81,,609600,0,34.5,32.3 +NAD83(NSRS2007) / South Carolina (ft),3656,4759,15355,9802,31.5,-81,,2000000,0,34.5,32.3 +NAD83(NSRS2007) / South Dakota North,3657,4759,14031,9802,43.5,-100,,600000,0,45.41,44.25 +NAD83(NSRS2007) / South Dakota North (ftUS),3658,4759,15394,9802,43.5,-100,,1968500,0,45.41,44.25 +NAD83(NSRS2007) / South Dakota South,3659,4759,14032,9802,42.2,-100.2,,600000,0,44.24,42.5 +NAD83(NSRS2007) / South Dakota South (ftUS),3660,4759,15395,9802,42.2,-100.2,,1968500,0,44.24,42.5 +NAD83(NSRS2007) / Tennessee,3661,4759,14130,9802,34.2,-86,,600000,0,36.25,35.15 +NAD83(NSRS2007) / Tennessee (ftUS),3662,4759,15356,9802,34.2,-86,,1968500,0,36.25,35.15 +NAD83(NSRS2007) / Texas Central,3663,4759,14233,9802,29.4,-100.2,,700000,3000000,31.53,30.07 +NAD83(NSRS2007) / Texas Central (ftUS),3664,4759,15359,9802,29.4,-100.2,,2296583.333,9842500,31.53,30.07 +NAD83(NSRS2007) / Texas Centric Albers Equal Area,3665,4759,14254,9822,18,-100,,1500000,6000000,-100,27.3 +NAD83(NSRS2007) / Texas Centric Lambert Conformal,3666,4759,14253,9802,18,-100,,1500000,5000000,27.3,35 +NAD83(NSRS2007) / Texas North,3667,4759,14231,9802,34,-101.3,,200000,1000000,36.11,34.39 +NAD83(NSRS2007) / Texas North (ftUS),3668,4759,15357,9802,34,-101.3,,656166.667,3280833.333,36.11,34.39 +NAD83(NSRS2007) / Texas North Central,3669,4759,14232,9802,31.4,-98.3,,600000,2000000,33.58,32.08 +NAD83(NSRS2007) / Texas North Central (ftUS),3670,4759,15358,9802,31.4,-98.3,,1968500,6561666.667,33.58,32.08 +NAD83(NSRS2007) / Texas South,3671,4759,14235,9802,25.4,-98.3,,300000,5000000,27.5,26.1 +NAD83(NSRS2007) / Texas South (ftUS),3672,4759,15361,9802,25.4,-98.3,,984250,16404166.667,27.5,26.1 +NAD83(NSRS2007) / Texas South Central,3673,4759,14234,9802,27.5,-99,,600000,4000000,30.17,28.23 +NAD83(NSRS2007) / Texas South Central (ftUS),3674,4759,15360,9802,27.5,-99,,1968500,13123333.333,30.17,28.23 +NAD83(NSRS2007) / Utah Central,3675,4759,14332,9802,38.2,-111.3,,500000,2000000,40.39,39.01 +NAD83(NSRS2007) / Utah Central (ft),3676,4759,15363,9802,38.2,-111.3,,1640419.948,6561679.79,40.39,39.01 +NAD83(NSRS2007) / Utah Central (ftUS),3677,4759,15298,9802,38.2,-111.3,,1640416.6667,6561666.6667,40.39,39.01 +NAD83(NSRS2007) / Utah North,3678,4759,14331,9802,40.2,-111.3,,500000,1000000,41.47,40.43 +NAD83(NSRS2007) / Utah North (ft),3679,4759,15362,9802,40.2,-111.3,,1640419.948,3280839.895,41.47,40.43 +NAD83(NSRS2007) / Utah North (ftUS),3680,4759,15297,9802,40.2,-111.3,,1640416.6667,3280833.3333,41.47,40.43 +NAD83(NSRS2007) / Utah South,3681,4759,14333,9802,36.4,-111.3,,500000,3000000,38.21,37.13 +NAD83(NSRS2007) / Utah South (ft),3682,4759,15364,9802,36.4,-111.3,,1640419.948,9842519.685,38.21,37.13 +NAD83(NSRS2007) / Utah South (ftUS),3683,4759,15299,9802,36.4,-111.3,,1640416.6667,9842500,38.21,37.13 +NAD83(NSRS2007) / Vermont,3684,4759,14430,9807,42.3,-72.3,0.999964286,500000,0,, +NAD83(NSRS2007) / Virginia North,3685,4759,14531,9802,37.4,-78.3,,3500000,2000000,39.12,38.02 +NAD83(NSRS2007) / Virginia North (ftUS),3686,4759,15365,9802,37.4,-78.3,,11482916.667,6561666.667,39.12,38.02 +NAD83(NSRS2007) / Virginia South,3687,4759,14532,9802,36.2,-78.3,,3500000,1000000,37.58,36.46 +NAD83(NSRS2007) / Virginia South (ftUS),3688,4759,15366,9802,36.2,-78.3,,11482916.667,3280833.333,37.58,36.46 +NAD83(NSRS2007) / Washington North,3689,4759,14631,9802,47,-120.5,,500000,0,48.44,47.3 +NAD83(NSRS2007) / Washington North (ftUS),3690,4759,15367,9802,47,-120.5,,1640416.667,0,48.44,47.3 +NAD83(NSRS2007) / Washington South,3691,4759,14632,9802,45.2,-120.3,,500000,0,47.2,45.5 +NAD83(NSRS2007) / Washington South (ftUS),3692,4759,15368,9802,45.2,-120.3,,1640416.667,0,47.2,45.5 +NAD83(NSRS2007) / West Virginia North,3693,4759,14731,9802,38.3,-79.3,,600000,0,40.15,39 +NAD83(NSRS2007) / West Virginia South,3694,4759,14732,9802,37,-81,,600000,0,38.53,37.29 +NAD83(NSRS2007) / Wisconsin Central,3695,4759,14832,9802,43.5,-90,,600000,0,45.3,44.15 +NAD83(NSRS2007) / Wisconsin Central (ftUS),3696,4759,15370,9802,43.5,-90,,1968500,0,45.3,44.15 +NAD83(NSRS2007) / Wisconsin North,3697,4759,14831,9802,45.1,-90,,600000,0,46.46,45.34 +NAD83(NSRS2007) / Wisconsin North (ftUS),3698,4759,15369,9802,45.1,-90,,1968500,0,46.46,45.34 +NAD83(NSRS2007) / Wisconsin South,3699,4759,14833,9802,42,-90,,600000,0,44.04,42.44 +NAD83(NSRS2007) / Wisconsin South (ftUS),3700,4759,15371,9802,42,-90,,1968500,0,44.04,42.44 +NAD83(NSRS2007) / Wisconsin Transverse Mercator,3701,4759,14841,9807,0,-90,0.9996,520000,-4480000,, +NAD83(NSRS2007) / Wyoming East,3702,4759,14931,9807,40.3,-105.1,0.9999375,200000,0,, +NAD83(NSRS2007) / Wyoming East Central,3703,4759,14932,9807,40.3,-107.2,0.9999375,400000,100000,, +NAD83(NSRS2007) / Wyoming West Central,3704,4759,14933,9807,40.3,-108.45,0.9999375,600000,0,, +NAD83(NSRS2007) / Wyoming West,3705,4759,14934,9807,40.3,-110.05,0.9999375,800000,100000,, +NAD83(NSRS2007) / UTM zone 59N,3706,4759,16059,9807,0,171,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 60N,3707,4759,16060,9807,0,177,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 1N,3708,4759,16001,9807,0,-177,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 2N,3709,4759,16002,9807,0,-171,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 3N,3710,4759,16003,9807,0,-165,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 4N,3711,4759,16004,9807,0,-159,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 5N,3712,4759,16005,9807,0,-153,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 6N,3713,4759,16006,9807,0,-147,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 7N,3714,4759,16007,9807,0,-141,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 8N,3715,4759,16008,9807,0,-135,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 9N,3716,4759,16009,9807,0,-129,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 10N,3717,4759,16010,9807,0,-123,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 11N,3718,4759,16011,9807,0,-117,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 12N,3719,4759,16012,9807,0,-111,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 13N,3720,4759,16013,9807,0,-105,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 14N,3721,4759,16014,9807,0,-99,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 15N,3722,4759,16015,9807,0,-93,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 16N,3723,4759,16016,9807,0,-87,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 17N,3724,4759,16017,9807,0,-81,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 18N,3725,4759,16018,9807,0,-75,0.9996,500000,0,, +NAD83(NSRS2007) / UTM zone 19N,3726,4759,16019,9807,0,-69,0.9996,500000,0,, +Reunion 1947 / TM Reunion,3727,4626,19856,9807,-21.07,55.32,1,160000,50000,, +NAD83(NSRS2007) / Ohio North (ftUS),3728,4759,13433,9802,39.4,-82.3,,1968500,0,41.42,40.26 +NAD83(NSRS2007) / Ohio South (ftUS),3729,4759,13434,9802,38,-82.3,,1968500,0,40.02,38.44 +NAD83(NSRS2007) / Wyoming East (ftUS),3730,4759,14935,9807,40.3,-105.1,0.9999375,656166.6667,0,, +NAD83(NSRS2007) / Wyoming East Central (ftUS),3731,4759,14936,9807,40.3,-107.2,0.9999375,1312333.3333,328083.3333,, +NAD83(NSRS2007) / Wyoming West Central (ftUS),3732,4759,14937,9807,40.3,-108.45,0.9999375,1968500,0,, +NAD83(NSRS2007) / Wyoming West (ftUS),3733,4759,14938,9807,40.3,-110.05,0.9999375,2624666.6667,328083.3333,, +NAD83 / Ohio North (ftUS),3734,4269,13433,9802,39.4,-82.3,,1968500,0,41.42,40.26 +NAD83 / Ohio South (ftUS),3735,4269,13434,9802,38,-82.3,,1968500,0,40.02,38.44 +NAD83 / Wyoming East (ftUS),3736,4269,14935,9807,40.3,-105.1,0.9999375,656166.6667,0,, +NAD83 / Wyoming East Central (ftUS),3737,4269,14936,9807,40.3,-107.2,0.9999375,1312333.3333,328083.3333,, +NAD83 / Wyoming West Central (ftUS),3738,4269,14937,9807,40.3,-108.45,0.9999375,1968500,0,, +NAD83 / Wyoming West (ftUS),3739,4269,14938,9807,40.3,-110.05,0.9999375,2624666.6667,328083.3333,, +NAD83(HARN) / UTM zone 10N,3740,4152,16010,9807,0,-123,0.9996,500000,0,, +NAD83(HARN) / UTM zone 11N,3741,4152,16011,9807,0,-117,0.9996,500000,0,, +NAD83(HARN) / UTM zone 12N,3742,4152,16012,9807,0,-111,0.9996,500000,0,, +NAD83(HARN) / UTM zone 13N,3743,4152,16013,9807,0,-105,0.9996,500000,0,, +NAD83(HARN) / UTM zone 14N,3744,4152,16014,9807,0,-99,0.9996,500000,0,, +NAD83(HARN) / UTM zone 15N,3745,4152,16015,9807,0,-93,0.9996,500000,0,, +NAD83(HARN) / UTM zone 16N,3746,4152,16016,9807,0,-87,0.9996,500000,0,, +NAD83(HARN) / UTM zone 17N,3747,4152,16017,9807,0,-81,0.9996,500000,0,, +NAD83(HARN) / UTM zone 18N,3748,4152,16018,9807,0,-75,0.9996,500000,0,, +NAD83(HARN) / UTM zone 19N,3749,4152,16019,9807,0,-69,0.9996,500000,0,, +NAD83(HARN) / UTM zone 4N,3750,4152,16004,9807,0,-159,0.9996,500000,0,, +NAD83(HARN) / UTM zone 5N,3751,4152,16005,9807,0,-153,0.9996,500000,0,, +NAD83(HARN) / Ohio North (ftUS),3753,4152,13433,9802,39.4,-82.3,,1968500,0,41.42,40.26 +NAD83(HARN) / Ohio South (ftUS),3754,4152,13434,9802,38,-82.3,,1968500,0,40.02,38.44 +NAD83(HARN) / Wyoming East (ftUS),3755,4152,14935,9807,40.3,-105.1,0.9999375,656166.6667,0,, +NAD83(HARN) / Wyoming East Central (ftUS),3756,4152,14936,9807,40.3,-107.2,0.9999375,1312333.3333,328083.3333,, +NAD83(HARN) / Wyoming West Central (ftUS),3757,4152,14937,9807,40.3,-108.45,0.9999375,1968500,0,, +NAD83(HARN) / Wyoming West (ftUS),3758,4152,14938,9807,40.3,-110.05,0.9999375,2624666.6667,328083.3333,, +NAD83 / Hawaii zone 3 (ftUS),3759,4269,15138,9807,21.1,-158,0.99999,1640416.6667,0,, +NAD83(HARN) / Hawaii zone 3 (ftUS),3760,4152,15138,9807,21.1,-158,0.99999,1640416.6667,0,, +NAD83(CSRS) / UTM zone 22N,3761,4617,16022,9807,0,-51,0.9996,500000,0,, +WGS 84 / South Georgia Lambert,3762,4326,19854,9802,-55,-37,,0,0,-54,-54.45 +ETRS89 / Portugal TM06,3763,4258,19853,9807,39.400573,-8.075919,1,0,0,, +NZGD2000 / Chatham Island Circuit 2000,3764,4167,17959,9807,-44,-176.3,1,400000,800000,, +HTRS96 / Croatia TM,3765,4761,19851,9807,0,16.5,0.9999,500000,0,, +HTRS96 / Croatia LCC,3766,4761,19852,9802,0,16.3,,0,0,45.55,43.05 +HTRS96 / UTM zone 33N,3767,4761,16033,9807,0,15,0.9996,500000,0,, +HTRS96 / UTM zone 34N,3768,4761,16034,9807,0,21,0.9996,500000,0,, +Bermuda 1957 / UTM zone 20N,3769,4216,16020,9807,0,-63,0.9996,500000,0,, +BDA2000 / Bermuda 2000 National Grid,3770,4762,19849,9807,32,-64.45,1,550000,100000,, +NAD27 / Alberta 3TM ref merid 111 W,3771,4267,17722,9807,0,-111,0.9999,0,0,, +NAD27 / Alberta 3TM ref merid 114 W,3772,4267,17723,9807,0,-114,0.9999,0,0,, +NAD27 / Alberta 3TM ref merid 117 W,3773,4267,17724,9807,0,-117,0.9999,0,0,, +NAD27 / Alberta 3TM ref merid 120 W,3774,4267,17725,9807,0,-120,0.9999,0,0,, +NAD83 / Alberta 3TM ref merid 111 W,3775,4269,17722,9807,0,-111,0.9999,0,0,, +NAD83 / Alberta 3TM ref merid 114 W,3776,4269,17723,9807,0,-114,0.9999,0,0,, +NAD83 / Alberta 3TM ref merid 117 W,3777,4269,17724,9807,0,-117,0.9999,0,0,, +NAD83 / Alberta 3TM ref merid 120 W,3778,4269,17725,9807,0,-120,0.9999,0,0,, +NAD83(CSRS) / Alberta 3TM ref merid 111 W,3779,4617,17722,9807,0,-111,0.9999,0,0,, +NAD83(CSRS) / Alberta 3TM ref merid 114 W,3780,4617,17723,9807,0,-114,0.9999,0,0,, +NAD83(CSRS) / Alberta 3TM ref merid 117 W,3781,4617,17724,9807,0,-117,0.9999,0,0,, +NAD83(CSRS) / Alberta 3TM ref merid 120 W,3782,4617,17725,9807,0,-120,0.9999,0,0,, +Pitcairn 2006 / Pitcairn TM 2006,3783,4763,19848,9807,-25.04067894,-130.06466816,1,14200,15500,, +Pitcairn 1967 / UTM zone 9S,3784,4729,16109,9807,0,-129,0.9996,500000,10000000,, +MGI / Slovene National Grid,3787,4312,19845,9807,0,15,0.9999,500000,-5000000,, +NZGD2000 / Auckland Islands TM 2000,3788,4167,17960,9807,0,166,1,3500000,10000000,, +NZGD2000 / Campbell Island TM 2000,3789,4167,17961,9807,0,169,1,3500000,10000000,, +NZGD2000 / Antipodes Islands TM 2000,3790,4167,17962,9807,0,179,1,3500000,10000000,, +NZGD2000 / Raoul Island TM 2000,3791,4167,17963,9807,0,-178,1,3500000,10000000,, +NZGD2000 / Chatham Islands TM 2000,3793,4167,17965,9807,0,-176.3,1,3500000,10000000,, +Slovenia 1996 / Slovene National Grid,3794,4765,19845,9807,0,15,0.9999,500000,-5000000,, +NAD27 / Cuba Norte,3795,4267,18063,9802,22.21,-81,,500000,280296.016,23,21.42 +NAD27 / Cuba Sur,3796,4267,18064,9802,20.43,-76.5,,500000,229126.939,21.18,20.08 +NAD27 / MTQ Lambert,3797,4267,19844,9802,44,-70,,800000,0,50,46 +NAD83 / MTQ Lambert,3798,4269,19844,9802,44,-70,,800000,0,50,46 +NAD83(CSRS) / MTQ Lambert,3799,4617,19844,9802,44,-70,,800000,0,50,46 +NAD27 / Alberta 3TM ref merid 120 W,3800,4267,17726,9807,0,-120,0.9999,0,0,, +NAD83 / Alberta 3TM ref merid 120 W,3801,4269,17726,9807,0,-120,0.9999,0,0,, +NAD83(CSRS) / Alberta 3TM ref merid 120 W,3802,4617,17726,9807,0,-120,0.9999,0,0,, +ETRS89 / Belgian Lambert 2008,3812,4258,3811,9802,50.4752134,4.2133177,,649328,665262,49.5,51.1 +NAD83 / Mississippi TM,3814,4269,3813,9807,32.3,-89.45,0.9998335,500000,1300000,, +NAD83(HARN) / Mississippi TM,3815,4152,3813,9807,32.3,-89.45,0.9998335,500000,1300000,, +NAD83(NSRS2007) / Mississippi TM,3816,4759,3813,9807,32.3,-89.45,0.9998335,500000,1300000,, +TWD97 / TM2 zone 119,3825,3824,3818,9807,0,119,0.9999,250000,0,, +TWD97 / TM2 zone 121,3826,3824,3820,9807,0,121,0.9999,250000,0,, +Hu Tzu Shan 1950 / UTM zone 51N,3829,4236,16051,9807,0,123,0.9996,500000,0,, +Pulkovo 1942(58) / Gauss-Kruger zone 2,3833,4179,16202,9807,0,9,1,2500000,0,, +Pulkovo 1942(83) / Gauss-Kruger zone 2,3834,4178,16202,9807,0,9,1,2500000,0,, +Pulkovo 1942(83) / Gauss-Kruger zone 3,3835,4178,16203,9807,0,15,1,3500000,0,, +Pulkovo 1942(83) / Gauss-Kruger zone 4,3836,4178,16204,9807,0,21,1,4500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3,3837,4179,16263,9807,0,9,1,3500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4,3838,4179,16264,9807,0,12,1,4500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9,3839,4179,16269,9807,0,27,1,9500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10,3840,4179,16270,9807,0,30,1,10500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6,3841,4178,16266,9807,0,18,1,6500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7,3842,4178,16266,9807,0,18,1,6500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8,3843,4178,16266,9807,0,18,1,6500000,0,, +SWEREF99 / RT90 7.5 gon V emulation,3845,4619,17339,9807,0,11.18225,1.000006,1500025.141,-667.282,, +SWEREF99 / RT90 5 gon V emulation,3846,4619,17340,9807,0,13.332256,1.0000058,1500044.695,-667.13,, +SWEREF99 / RT90 2.5 gon V emulation,3847,4619,17341,9807,0,15.4822624306,1.00000561024,1500064.274,-667.711,, +SWEREF99 / RT90 0 gon emulation,3848,4619,17342,9807,0,18.032268,1.0000054,1500083.521,-668.844,, +SWEREF99 / RT90 2.5 gon O emulation,3849,4619,17343,9807,0,20.182274,1.0000052,1500102.765,-670.706,, +SWEREF99 / RT90 5 gon O emulation,3850,4619,17344,9807,0,22.33228,1.0000049,1500121.846,-672.557,, +NZGD2000 / NZCS2000,3851,4167,17964,9802,-41,173,,3000000,7000000,-37.3,-44.3 +RSRGD2000 / DGLC2000,3852,4764,17966,9802,-90,157,,500000,0,-76.4,-79.2 +County ST74,3854,4619,3853,9807,0,18.0328332,0.99999506,100182.7406,-6500620.1207,, +WGS 84 / Pseudo-Mercator,3857,4326,3856,1024,0,0,,0,0,, +ETRS89 / GK19FIN,3873,4258,3860,9807,0,19,1,19500000,0,, +ETRS89 / GK20FIN,3874,4258,3861,9807,0,20,1,20500000,0,, +ETRS89 / GK21FIN,3875,4258,3862,9807,0,21,1,21500000,0,, +ETRS89 / GK22FIN,3876,4258,3863,9807,0,22,1,22500000,0,, +ETRS89 / GK23FIN,3877,4258,3864,9807,0,23,1,23500000,0,, +ETRS89 / GK24FIN,3878,4258,3865,9807,0,24,1,24500000,0,, +ETRS89 / GK25FIN,3879,4258,3866,9807,0,25,1,25500000,0,, +ETRS89 / GK26FIN,3880,4258,3867,9807,0,26,1,26500000,0,, +ETRS89 / GK27FIN,3881,4258,3868,9807,0,27,1,27500000,0,, +ETRS89 / GK28FIN,3882,4258,3869,9807,0,28,1,28500000,0,, +ETRS89 / GK29FIN,3883,4258,3870,9807,0,29,1,29500000,0,, +ETRS89 / GK30FIN,3884,4258,3871,9807,0,30,1,30500000,0,, +ETRS89 / GK31FIN,3885,4258,3872,9807,0,31,1,31500000,0,, +IGRS / UTM zone 37N,3890,3889,16037,9807,0,39,0.9996,500000,0,, +IGRS / UTM zone 38N,3891,3889,16038,9807,0,45,0.9996,500000,0,, +IGRS / UTM zone 39N,3892,3889,16039,9807,0,51,0.9996,500000,0,, +ED50 / Iraq National Grid,3893,4230,19907,9807,29.0134566,46.3,0.9994,800000,0,, +MGI 1901 / Balkans zone 5,3907,3906,18275,9807,0,15,0.9999,5500000,0,, +MGI 1901 / Balkans zone 6,3908,3906,18276,9807,0,18,0.9999,6500000,0,, +MGI 1901 / Balkans zone 7,3909,3906,18277,9807,0,21,0.9999,7500000,0,, +MGI 1901 / Balkans zone 8,3910,3906,18278,9807,0,24,0.9999,8500000,0,, +MGI 1901 / Slovenia Grid,3911,3906,19967,9807,0,15,0.9999,500000,0,, +MGI 1901 / Slovene National Grid,3912,3906,19845,9807,0,15,0.9999,500000,-5000000,, +Puerto Rico / UTM zone 20N,3920,4139,16020,9807,0,-63,0.9996,500000,0,, +RGF93 / CC42,3942,4171,18101,9802,42,3,,1700000,1200000,41.25,42.75 +RGF93 / CC43,3943,4171,18102,9802,43,3,,1700000,2200000,42.25,43.75 +RGF93 / CC44,3944,4171,18103,9802,44,3,,1700000,3200000,43.25,44.75 +RGF93 / CC45,3945,4171,18104,9802,45,3,,1700000,4200000,44.25,45.75 +RGF93 / CC46,3946,4171,18105,9802,46,3,,1700000,5200000,45.25,46.75 +RGF93 / CC47,3947,4171,18106,9802,47,3,,1700000,6200000,46.25,47.75 +RGF93 / CC48,3948,4171,18107,9802,48,3,,1700000,7200000,47.25,48.75 +RGF93 / CC49,3949,4171,18108,9802,49,3,,1700000,8200000,48.25,49.75 +RGF93 / CC50,3950,4171,18109,9802,50,3,,1700000,9200000,49.25,50.75 +NAD83 / Virginia Lambert,3968,4269,3967,9802,36,-79.5,,0,0,37,39.5 +NAD83(HARN) / Virginia Lambert,3969,4152,3967,9802,36,-79.5,,0,0,37,39.5 +NAD83(NSRS2007) / Virginia Lambert,3970,4759,3967,9802,36,-79.5,,0,0,37,39.5 +NAD83 / Canada Atlas Lambert,3978,4269,3977,9802,49,-95,,0,0,49,77 +NAD83(CSRS) / Canada Atlas Lambert,3979,4617,3977,9802,49,-95,,0,0,49,77 +Katanga 1955 / Katanga Lambert,3985,4695,3980,9802,9,26,,500000,500000,-6.5,-11.5 +Katanga 1955 / Katanga Gauss zone A,3986,4695,3981,9807,-9,30,1,200000,500000,, +Katanga 1955 / Katanga Gauss zone B,3987,4695,3982,9807,-9,28,1,200000,500000,, +Katanga 1955 / Katanga Gauss zone C,3988,4695,3983,9807,-9,26,1,200000,500000,, +Katanga 1955 / Katanga Gauss zone D,3989,4695,3984,9807,-9,24,1,200000,500000,, +Puerto Rico State Plane CS of 1927,3991,4139,15201,9802,17.5,-66.26,,500000,0,18.26,18.02 +Puerto Rico / St. Croix,3992,4139,15202,9802,17.5,-66.26,,500000,100000,18.26,18.02 +WGS 84 / Dubai Local TM,3997,4326,19839,9807,0,55.2,1,500000,0,, +MOLDREF99 / Moldova TM,4026,4023,3999,9807,0,28.24,0.99994,200000,-5000000,, +WGS 84 / TMzn35N,4037,4326,16035,9807,0,27,0.9996,500000,0,, +WGS 84 / TMzn36N,4038,4326,16036,9807,0,33,0.9996,500000,0,, +RGRDC 2005 / Congo TM zone 12,4048,4046,17412,9807,0,12,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 14,4049,4046,17414,9807,0,14,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 16,4050,4046,17416,9807,0,16,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 18,4051,4046,17418,9807,0,18,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 20,4056,4046,17420,9807,0,20,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 22,4057,4046,17422,9807,0,22,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 24,4058,4046,17424,9807,0,24,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 26,4059,4046,17426,9807,0,26,0.9999,500000,10000000,, +RGRDC 2005 / Congo TM zone 28,4060,4046,17428,9807,0,28,0.9999,500000,10000000,, +RGRDC 2005 / UTM zone 33S,4061,4046,16133,9807,0,15,0.9996,500000,10000000,, +RGRDC 2005 / UTM zone 34S,4062,4046,16134,9807,0,21,0.9996,500000,10000000,, +RGRDC 2005 / UTM zone 35S,4063,4046,16135,9807,0,27,0.9996,500000,10000000,, +Chua / UTM zone 23S,4071,4224,16123,9807,0,-45,0.9996,500000,10000000,, +REGCAN95 / UTM zone 27N,4082,4081,16027,9807,0,-21,0.9996,500000,0,, +REGCAN95 / UTM zone 28N,4083,4081,16028,9807,0,-15,0.9996,500000,0,, +ETRS89 / DKTM1,4093,4258,4089,9807,0,9,0.99998,200000,-5000000,, +ETRS89 / DKTM2,4094,4258,4090,9807,0,10,0.99998,400000,-5000000,, +ETRS89 / DKTM3,4095,4258,4091,9807,0,11.75,0.99998,600000,-5000000,, +ETRS89 / DKTM4,4096,4258,4092,9807,0,15,1,800000,-5000000,, +NAD83 / BLM 59N (ftUS),4217,4269,4186,9807,0,171,0.9996,1640416.67,0,, +NAD27 / BLM 59N (ftUS),4399,4267,4186,9807,0,171,0.9996,1640416.67,0,, +NAD27 / BLM 60N (ftUS),4400,4267,4187,9807,0,177,0.9996,1640416.67,0,, +NAD27 / BLM 1N (ftUS),4401,4267,4101,9807,0,-177,0.9996,1640416.67,0,, +NAD27 / BLM 2N (ftUS),4402,4267,4102,9807,0,-171,0.9996,1640416.67,0,, +NAD27 / BLM 3N (ftUS),4403,4267,4103,9807,0,-165,0.9996,1640416.67,0,, +NAD27 / BLM 4N (ftUS),4404,4267,4104,9807,0,-159,0.9996,1640416.67,0,, +NAD27 / BLM 5N (ftUS),4405,4267,4105,9807,0,-153,0.9996,1640416.67,0,, +NAD27 / BLM 6N (ftUS),4406,4267,4106,9807,0,-147,0.9996,1640416.67,0,, +NAD27 / BLM 7N (ftUS),4407,4267,4107,9807,0,-141,0.9996,1640416.67,0,, +NAD27 / BLM 8N (ftUS),4408,4267,4108,9807,0,-135,0.9996,1640416.67,0,, +NAD27 / BLM 9N (ftUS),4409,4267,4109,9807,0,-129,0.9996,1640416.67,0,, +NAD27 / BLM 10N (ftUS),4410,4267,4110,9807,0,-123,0.9996,1640416.67,0,, +NAD27 / BLM 11N (ftUS),4411,4267,4111,9807,0,-117,0.9996,1640416.67,0,, +NAD27 / BLM 12N (ftUS),4412,4267,4112,9807,0,-111,0.9996,1640416.67,0,, +NAD27 / BLM 13N (ftUS),4413,4267,4113,9807,0,-105,0.9996,1640416.67,0,, +NAD83(HARN) / Guam Map Grid,4414,4152,4325,9807,13.3,144.45,1,100000,200000,, +Katanga 1955 / Katanga Lambert,4415,4695,4416,9802,-9,26,,500000,500000,-6.5,-11.5 +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7,4417,4178,16267,9807,0,21,1,7500000,0,, +NAD27 / BLM 18N (ftUS),4418,4267,4118,9807,0,-75,0.9996,1640416.67,0,, +NAD27 / BLM 19N (ftUS),4419,4267,4119,9807,0,-69,0.9996,1640416.67,0,, +NAD83 / BLM 60N (ftUS),4420,4269,4187,9807,0,177,0.9996,1640416.67,0,, +NAD83 / BLM 1N (ftUS),4421,4269,4101,9807,0,-177,0.9996,1640416.67,0,, +NAD83 / BLM 2N (ftUS),4422,4269,4102,9807,0,-171,0.9996,1640416.67,0,, +NAD83 / BLM 3N (ftUS),4423,4269,4103,9807,0,-165,0.9996,1640416.67,0,, +NAD83 / BLM 4N (ftUS),4424,4269,4104,9807,0,-159,0.9996,1640416.67,0,, +NAD83 / BLM 5N (ftUS),4425,4269,4105,9807,0,-153,0.9996,1640416.67,0,, +NAD83 / BLM 6N (ftUS),4426,4269,4106,9807,0,-147,0.9996,1640416.67,0,, +NAD83 / BLM 7N (ftUS),4427,4269,4107,9807,0,-141,0.9996,1640416.67,0,, +NAD83 / BLM 8N (ftUS),4428,4269,4108,9807,0,-135,0.9996,1640416.67,0,, +NAD83 / BLM 9N (ftUS),4429,4269,4109,9807,0,-129,0.9996,1640416.67,0,, +NAD83 / BLM 10N (ftUS),4430,4269,4110,9807,0,-123,0.9996,1640416.67,0,, +NAD83 / BLM 11N (ftUS),4431,4269,4111,9807,0,-117,0.9996,1640416.67,0,, +NAD83 / BLM 12N (ftUS),4432,4269,4112,9807,0,-111,0.9996,1640416.67,0,, +NAD83 / BLM 13N (ftUS),4433,4269,4113,9807,0,-105,0.9996,1640416.67,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8,4434,4178,16268,9807,0,24,1,8500000,0,, +NAD83(NSRS2007) / Puerto Rico and Virgin Is.,4437,4759,15230,9802,17.5,-66.26,,200000,200000,18.26,18.02 +NAD83 / BLM 18N (ftUS),4438,4269,4118,9807,0,-75,0.9996,1640416.67,0,, +NAD83 / BLM 19N (ftUS),4439,4269,4119,9807,0,-69,0.9996,1640416.67,0,, +NAD27 / Pennsylvania South,4455,4267,4436,9802,39.2,-77.45,,2000000,0,40.58,39.56 +NAD27 / New York Long Island,4456,4267,4454,9802,40.3,-74,,2000000,100000,41.02,40.4 +NAD83 / South Dakota North (ftUS),4457,4269,15394,9802,43.5,-100,,1968500,0,45.41,44.25 +WGS 84 / Australian Centre for Remote Sensing Lambert,4462,4326,4460,9802,-27,132,,0,0,-18,-36 +RGSPM06 / UTM zone 21N,4467,4463,16021,9807,0,-57,0.9996,500000,0,, +RGM04 / UTM zone 38S,4471,4470,16138,9807,0,45,0.9996,500000,10000000,, +Cadastre 1997 / UTM zone 38S,4474,4632,16138,9807,0,45,0.9996,500000,10000000,, +Mexico ITRF92 / UTM zone 11N,4484,4483,16011,9807,0,-117,0.9996,500000,0,, +Mexico ITRF92 / UTM zone 12N,4485,4483,16012,9807,0,-111,0.9996,500000,0,, +Mexico ITRF92 / UTM zone 13N,4486,4483,16013,9807,0,-105,0.9996,500000,0,, +Mexico ITRF92 / UTM zone 14N,4487,4483,16014,9807,0,-99,0.9996,500000,0,, +Mexico ITRF92 / UTM zone 15N,4488,4483,16015,9807,0,-93,0.9996,500000,0,, +Mexico ITRF92 / UTM zone 16N,4489,4483,16016,9807,0,-87,0.9996,500000,0,, +RRAF 1991 / UTM zone 20N,4559,4558,16020,9807,0,-63,0.9996,500000,0,, +ETRS89 / UTM zone 32N (zE-N),4647,4258,4648,9807,0,9,0.9996,32500000,0,, +WGS 84 / Cape Verde National,4826,4326,4825,9802,15.5,-24,,161587.83,128511.202,15,16.4 +ETRS89 / LCC Germany (N-E),4839,4258,4838,9802,51,10.3,,0,0,48.4,53.4 +ETRS89 / NTM zone 5,4855,4258,4845,9807,0,5.3,1,100000,1000000,, +ETRS89 / NTM zone 6,4856,4258,4846,9807,0,6.3,1,100000,1000000,, +ETRS89 / NTM zone 7,4857,4258,4847,9807,0,7.3,1,100000,1000000,, +ETRS89 / NTM zone 8,4858,4258,4848,9807,0,8.3,1,100000,1000000,, +ETRS89 / NTM zone 9,4859,4258,4849,9807,0,9.3,1,100000,1000000,, +ETRS89 / NTM zone 10,4860,4258,4850,9807,0,10.3,1,100000,1000000,, +ETRS89 / NTM zone 11,4861,4258,4851,9807,0,11.3,1,100000,1000000,, +ETRS89 / NTM zone 12,4862,4258,4852,9807,0,12.3,1,100000,1000000,, +ETRS89 / NTM zone 13,4863,4258,4853,9807,0,13.3,1,100000,1000000,, +ETRS89 / NTM zone 14,4864,4258,4854,9807,0,14.3,1,100000,1000000,, +ETRS89 / NTM zone 15,4865,4258,4841,9807,0,15.3,1,100000,1000000,, +ETRS89 / NTM zone 16,4866,4258,4842,9807,0,16.3,1,100000,1000000,, +ETRS89 / NTM zone 17,4867,4258,4843,9807,0,17.3,1,100000,1000000,, +ETRS89 / NTM zone 18,4868,4258,4844,9807,0,18.3,1,100000,1000000,, +ETRS89 / NTM zone 19,4869,4258,4881,9807,0,19.3,1,100000,1000000,, +ETRS89 / NTM zone 20,4870,4258,5000,9807,0,20.3,1,100000,1000000,, +ETRS89 / NTM zone 21,4871,4258,5001,9807,0,21.3,1,100000,1000000,, +ETRS89 / NTM zone 22,4872,4258,5002,9807,0,22.3,1,100000,1000000,, +ETRS89 / NTM zone 23,4873,4258,5003,9807,0,23.3,1,100000,1000000,, +ETRS89 / NTM zone 24,4874,4258,5004,9807,0,24.3,1,100000,1000000,, +ETRS89 / NTM zone 25,4875,4258,5005,9807,0,25.3,1,100000,1000000,, +ETRS89 / NTM zone 26,4876,4258,5006,9807,0,26.3,1,100000,1000000,, +ETRS89 / NTM zone 27,4877,4258,5007,9807,0,27.3,1,100000,1000000,, +ETRS89 / NTM zone 28,4878,4258,5008,9807,0,28.3,1,100000,1000000,, +ETRS89 / NTM zone 29,4879,4258,5009,9807,0,29.3,1,100000,1000000,, +ETRS89 / NTM zone 30,4880,4258,5010,9807,0,30.3,1,100000,1000000,, +PTRA08 / UTM zone 25N,5014,5013,16025,9807,0,-33,0.9996,500000,0,, +PTRA08 / UTM zone 26N,5015,5013,16026,9807,0,-27,0.9996,500000,0,, +PTRA08 / UTM zone 28N,5016,5013,16028,9807,0,-15,0.9996,500000,0,, +Lisbon / Portuguese Grid New,5018,4207,5020,9807,39.4,-8.0754862,1,0,0,, +NAD27 / Conus Albers,5069,4267,5068,9822,23,-96,,0,0,-96,29.3 +NAD83 / Conus Albers,5070,4269,5068,9822,23,-96,,0,0,-96,29.3 +NAD83(HARN) / Conus Albers,5071,4152,5068,9822,23,-96,,0,0,-96,29.3 +NAD83(NSRS2007) / Conus Albers,5072,4759,5068,9822,23,-96,,0,0,-96,29.3 +ETRS89 / NTM zone 5,5105,4258,5135,9807,58,5.3,1,100000,1000000,, +ETRS89 / NTM zone 6,5106,4258,5136,9807,58,6.3,1,100000,1000000,, +ETRS89 / NTM zone 7,5107,4258,5137,9807,58,7.3,1,100000,1000000,, +ETRS89 / NTM zone 8,5108,4258,5138,9807,58,8.3,1,100000,1000000,, +ETRS89 / NTM zone 9,5109,4258,5139,9807,58,9.3,1,100000,1000000,, +ETRS89 / NTM zone 10,5110,4258,5140,9807,58,10.3,1,100000,1000000,, +ETRS89 / NTM zone 11,5111,4258,5141,9807,58,11.3,1,100000,1000000,, +ETRS89 / NTM zone 12,5112,4258,5142,9807,58,12.3,1,100000,1000000,, +ETRS89 / NTM zone 13,5113,4258,5143,9807,58,13.3,1,100000,1000000,, +ETRS89 / NTM zone 14,5114,4258,5144,9807,58,14.3,1,100000,1000000,, +ETRS89 / NTM zone 15,5115,4258,5145,9807,58,15.3,1,100000,1000000,, +ETRS89 / NTM zone 16,5116,4258,5146,9807,58,16.3,1,100000,1000000,, +ETRS89 / NTM zone 17,5117,4258,5147,9807,58,17.3,1,100000,1000000,, +ETRS89 / NTM zone 18,5118,4258,5148,9807,58,18.3,1,100000,1000000,, +ETRS89 / NTM zone 19,5119,4258,5149,9807,58,19.3,1,100000,1000000,, +ETRS89 / NTM zone 20,5120,4258,5150,9807,58,20.3,1,100000,1000000,, +ETRS89 / NTM zone 21,5121,4258,5151,9807,58,21.3,1,100000,1000000,, +ETRS89 / NTM zone 22,5122,4258,5152,9807,58,22.3,1,100000,1000000,, +ETRS89 / NTM zone 23,5123,4258,5153,9807,58,23.3,1,100000,1000000,, +ETRS89 / NTM zone 24,5124,4258,5154,9807,58,24.3,1,100000,1000000,, +ETRS89 / NTM zone 25,5125,4258,5155,9807,58,25.3,1,100000,1000000,, +ETRS89 / NTM zone 26,5126,4258,5156,9807,58,26.3,1,100000,1000000,, +ETRS89 / NTM zone 27,5127,4258,5157,9807,58,27.3,1,100000,1000000,, +ETRS89 / NTM zone 28,5128,4258,5158,9807,58,28.3,1,100000,1000000,, +ETRS89 / NTM zone 29,5129,4258,5159,9807,58,29.3,1,100000,1000000,, +ETRS89 / NTM zone 30,5130,4258,5160,9807,58,30.3,1,100000,1000000,, +Korea 2000 / Unified CS,5179,4737,5100,9807,38,127.3,0.9996,1000000,2000000,, +Korea 2000 / West Belt,5180,4737,18253,9807,38,125,1,200000,500000,, +Korea 2000 / Central Belt,5181,4737,18252,9807,38,127,1,200000,500000,, +Korea 2000 / Central Belt Jeju,5182,4737,5131,9807,38,127,1,200000,550000,, +Korea 2000 / East Belt,5183,4737,18251,9807,38,129,1,200000,500000,, +Korea 2000 / East Sea Belt,5184,4737,5049,9807,38,131,1,200000,500000,, +Korea 2000 / West Belt 2010,5185,4737,5101,9807,38,125,1,200000,600000,, +Korea 2000 / Central Belt 2010,5186,4737,5102,9807,38,127,1,200000,600000,, +Korea 2000 / East Belt 2010,5187,4737,5103,9807,38,129,1,200000,600000,, +Korea 2000 / East Sea Belt 2010,5188,4737,5104,9807,38,131,1,200000,600000,, +WGS 84 / Gabon TM,5223,4326,5222,9807,0,12,0.9996,500000,500000,, +Kandawala / Sri Lanka Grid,5234,4244,5231,9807,7.0001729,80.461816,0.9999238418,200000,200000,, +ETRS89 / LCC Germany (E-N),5243,4258,4838,9802,51,10.3,,0,0,48.4,53.4 +TUREF / TM27,5253,5252,16305,9807,0,27,1,500000,0,, +TUREF / TM30,5254,5252,16370,9807,0,30,1,500000,0,, +TUREF / TM33,5255,5252,16306,9807,0,33,1,500000,0,, +TUREF / TM36,5256,5252,16372,9807,0,36,1,500000,0,, +TUREF / TM39,5257,5252,16307,9807,0,39,1,500000,0,, +TUREF / TM42,5258,5252,16374,9807,0,42,1,500000,0,, +TUREF / TM45,5259,5252,16308,9807,0,45,1,500000,0,, +DRUKREF 03 / Bhutan National Grid,5266,5264,5265,9807,0,90,1,250000,0,, +TUREF / 3-degree Gauss-Kruger zone 9,5269,5252,16269,9807,0,27,1,9500000,0,, +TUREF / 3-degree Gauss-Kruger zone 10,5270,5252,16270,9807,0,30,1,10500000,0,, +TUREF / 3-degree Gauss-Kruger zone 11,5271,5252,16271,9807,0,33,1,11500000,0,, +TUREF / 3-degree Gauss-Kruger zone 12,5272,5252,16272,9807,0,36,1,12500000,0,, +TUREF / 3-degree Gauss-Kruger zone 13,5273,5252,16273,9807,0,39,1,13500000,0,, +TUREF / 3-degree Gauss-Kruger zone 14,5274,5252,16274,9807,0,42,1,14500000,0,, +TUREF / 3-degree Gauss-Kruger zone 15,5275,5252,16275,9807,0,45,1,15500000,0,, +DRUKREF 03 / Bumthang TM,5292,5264,5268,9807,0,90.44,1,250000,-2500000,, +DRUKREF 03 / Chhukha TM,5293,5264,5276,9807,0,89.33,1,250000,-2500000,, +DRUKREF 03 / Dagana TM,5294,5264,5277,9807,0,89.51,1,250000,-2500000,, +DRUKREF 03 / Gasa TM,5295,5264,5278,9807,0,90.02,1,250000,-2500000,, +DRUKREF 03 / Ha TM,5296,5264,5279,9807,0,90.09,1,250000,-2500000,, +DRUKREF 03 / Lhuentse TM,5297,5264,5280,9807,0,91.08,1,250000,-2500000,, +DRUKREF 03 / Mongar TM,5298,5264,5281,9807,0,91.14,1,250000,-2500000,, +DRUKREF 03 / Paro TM,5299,5264,5282,9807,0,89.21,1,250000,-2500000,, +DRUKREF 03 / Pemagatshel TM,5300,5264,5283,9807,0,91.21,1,250000,-2500000,, +DRUKREF 03 / Punakha TM,5301,5264,5313,9807,0,89.51,1,250000,-2500000,, +DRUKREF 03 / Samdrup Jongkhar TM,5302,5264,5285,9807,0,91.34,1,250000,-2500000,, +DRUKREF 03 / Samtse TM,5303,5264,5286,9807,0,89.04,1,250000,-2500000,, +DRUKREF 03 / Sarpang TM,5304,5264,5287,9807,0,90.16,1,250000,-2500000,, +DRUKREF 03 / Thimphu TM,5305,5264,5312,9807,0,89.33,1,250000,-2500000,, +DRUKREF 03 / Trashigang TM,5306,5264,5289,9807,0,91.45,1,250000,-2500000,, +DRUKREF 03 / Trongsa TM,5307,5264,5290,9807,0,90.3,1,250000,-2500000,, +DRUKREF 03 / Tsirang TM,5308,5264,5284,9807,0,90.1,1,250000,-2500000,, +DRUKREF 03 / Wangdue Phodrang TM,5309,5264,5288,9807,0,90.07,1,250000,-2500000,, +DRUKREF 03 / Yangtse TM,5310,5264,5314,9807,0,91.34,1,250000,-2500000,, +DRUKREF 03 / Zhemgang TM,5311,5264,5291,9807,0,90.52,1,250000,-2500000,, +ETRS89 / Faroe TM,5316,4258,5315,9807,0,-7,0.999997,200000,-6000000,, +NAD83 / Teranet Ontario Lambert,5320,4269,5319,9802,0,-84,,1000000,0,44.3,54.3 +NAD83(CSRS) / Teranet Ontario Lambert,5321,4617,5319,9802,0,-84,,1000000,0,44.3,54.3 +ISN2004 / Lambert 2004,5325,5324,5326,9802,65,-19,,1700000,300000,64.15,65.45 +Aratu / UTM zone 25S,5337,4208,16125,9807,0,-33,0.9996,500000,10000000,, +POSGAR 2007 / Argentina 1,5343,5340,18031,9807,-90,-72,1,1500000,0,, +POSGAR 2007 / Argentina 2,5344,5340,18032,9807,-90,-69,1,2500000,0,, +POSGAR 2007 / Argentina 3,5345,5340,18033,9807,-90,-66,1,3500000,0,, +POSGAR 2007 / Argentina 4,5346,5340,18034,9807,-90,-63,1,4500000,0,, +POSGAR 2007 / Argentina 5,5347,5340,18035,9807,-90,-60,1,5500000,0,, +POSGAR 2007 / Argentina 6,5348,5340,18036,9807,-90,-57,1,6500000,0,, +POSGAR 2007 / Argentina 7,5349,5340,18037,9807,-90,-54,1,7500000,0,, +MARGEN / UTM zone 20S,5355,5354,16120,9807,0,-63,0.9996,500000,10000000,, +MARGEN / UTM zone 19S,5356,5354,16119,9807,0,-69,0.9996,500000,10000000,, +MARGEN / UTM zone 21S,5357,5354,16121,9807,0,-57,0.9996,500000,10000000,, +SIRGAS-Chile / UTM zone 19S,5361,5360,16119,9807,0,-69,0.9996,500000,10000000,, +SIRGAS-Chile / UTM zone 18S,5362,5360,16118,9807,0,-75,0.9996,500000,10000000,, +CR05 / CRTM05,5367,5365,5366,9807,0,-84,0.9999,500000,0,, +SIRGAS-ROU98 / UTM zone 21S,5382,5381,16121,9807,0,-57,0.9996,500000,10000000,, +SIRGAS-ROU98 / UTM zone 22S,5383,5381,16122,9807,0,-51,0.9996,500000,10000000,, +Peru96 / UTM zone 18S,5387,5373,16118,9807,0,-75,0.9996,500000,10000000,, +Peru96 / UTM zone 17S,5388,5373,16017,9807,0,-81,0.9996,500000,0,, +Peru96 / UTM zone 19S,5389,5373,16119,9807,0,-69,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 26S,5396,4674,16126,9807,0,-27,0.9996,500000,10000000,, +Ocotepeque 1935 / Costa Rica Norte,5456,5451,5390,9801,10.28,-84.2,0.99995696,500000,271820.522,, +Ocotepeque 1935 / Costa Rica Sur,5457,5451,5394,9801,9,-83.4,0.99995696,500000,327987.436,, +Ocotepeque 1935 / Guatemala Norte,5458,4267,18211,9801,16.49,-90.2,0.99992226,500000,292209.579,, +Ocotepeque 1935 / Guatemala Sur,5459,5451,18212,9801,14.54,-90.2,0.99989906,500000,325992.681,, +Ocotepeque 1935 / El Salvador Lambert,5460,5451,5399,9801,13.47,-89,0.99996704,500000,295809.184,, +Ocotepeque 1935 / Nicaragua Norte,5461,5451,5439,9801,13.52,-85.3,0.99990314,500000,359891.816,, +Ocotepeque 1935 / Nicaragua Sur,5462,5451,5444,9801,11.44,-85.3,0.99992228,500000,288876.327,, +SAD69 / UTM zone 17N,5463,4618,16017,9807,0,-81,0.9996,500000,0,, +RSRGD2000 / MSLC2000,5479,4764,5475,9802,-78,163,,7000000,5000000,-76.4,-79.2 +RSRGD2000 / BCLC2000,5480,4764,5476,9802,-74.3,165,,5000000,3000000,-73.4,-75.2 +RSRGD2000 / PCLC2000,5481,4764,5477,9802,-71.3,166,,3000000,1000000,-70.4,-72.2 +RGAF09 / UTM zone 20N,5490,5489,16020,9807,0,-63,0.9996,500000,0,, +CI1971 / Chatham Islands Map Grid,5518,4672,5517,9807,-44,-176.3,1,350000,650000,, +DHDN / 3-degree Gauss-Kruger zone 1,5520,4314,16261,9807,0,3,1,1500000,0,, +WGS 84 / Gabon TM 2011,5523,4326,5522,9807,0,11.3,0.9996,1500000,5500000,, +SAD69(96) / UTM zone 21S,5531,5527,16121,9807,0,-57,0.9996,500000,10000000,, +SAD69(96) / UTM zone 22S,5532,4618,16122,9807,0,-51,0.9996,500000,10000000,, +SAD69(96) / UTM zone 23S,5533,5527,16123,9807,0,-45,0.9996,500000,10000000,, +SAD69(96) / UTM zone 24S,5534,5527,16124,9807,0,-39,0.9996,500000,10000000,, +SAD69(96) / UTM zone 25S,5535,5527,16125,9807,0,-33,0.9996,500000,10000000,, +PNG94 / PNGMG94 zone 54,5550,5546,5547,9807,0,141,0.9996,500000,10000000,, +PNG94 / PNGMG94 zone 55,5551,5546,5548,9807,0,147,0.9996,500000,10000000,, +PNG94 / PNGMG94 zone 56,5552,5546,5549,9807,0,153,0.9996,500000,10000000,, +Ocotepeque 1935 / Guatemala Norte,5559,5451,18211,9801,16.49,-90.2,0.99992226,500000,292209.579,, +FEH2010 / Fehmarnbelt TM,5596,5593,5595,9807,0,11.2,1,1000000,0,, +NAD27 / Michigan East,5623,4267,12101,9807,41.3,-83.4,0.999942857,500000,0,, +NAD27 / Michigan Old Central,5624,4267,12102,9807,41.3,-85.45,0.999909091,500000,0,, +NAD27 / Michigan West,5625,4267,12103,9807,41.3,-88.45,0.999909091,500000,0,, +ED50 / TM 6 NE,5627,4230,16406,9807,0,6,0.9996,500000,0,, +Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N),5631,4179,16202,9807,0,9,1,2500000,0,, +PTRA08 / LCC Europe,5632,5013,19985,9802,52,10,,4000000,2800000,35,65 +PTRA08 / LAEA Europe,5633,5013,19986,9820,52,10,,4321000,3210000,, +REGCAN95 / LCC Europe,5634,4081,19985,9802,52,10,,4000000,2800000,35,65 +REGCAN95 / LAEA Europe,5635,4081,19986,9820,52,10,,4321000,3210000,, +TUREF / LAEA Europe,5636,5252,19986,9820,52,10,,4321000,3210000,, +TUREF / LCC Europe,5637,5252,19985,9802,52,10,,4000000,2800000,35,65 +ISN2004 / LAEA Europe,5638,5324,19986,9820,52,10,,4321000,3210000,, +ISN2004 / LCC Europe,5639,5324,19985,9802,52,10,,4000000,2800000,35,65 +ED50 / SPBA LCC,5643,4230,5642,9802,48,10,,815000,0,52.4,54.2 +RGR92 / UTM zone 39S,5644,4627,16139,9807,0,51,0.9996,500000,10000000,, +NAD83 / Vermont (ftUS),5646,4269,5645,9807,42.3,-72.3,0.999964286,1640416.6667,0,, +ETRS89 / UTM zone 31N (zE-N),5649,4258,5647,9807,0,3,0.9996,31500000,0,, +ETRS89 / UTM zone 33N (zE-N),5650,4258,5648,9807,0,15,0.9996,33500000,0,, +ETRS89 / UTM zone 31N (N-zE),5651,4258,5647,9807,0,3,0.9996,31500000,0,, +ETRS89 / UTM zone 32N (N-zE),5652,4258,4648,9807,0,9,0.9996,32500000,0,, +ETRS89 / UTM zone 33N (N-zE),5653,4258,5648,9807,0,15,0.9996,33500000,0,, +NAD83(HARN) / Vermont (ftUS),5654,4152,5645,9807,42.3,-72.3,0.999964286,1640416.6667,0,, +NAD83(NSRS2007) / Vermont (ftUS),5655,4759,5645,9807,42.3,-72.3,0.999964286,1640416.6667,0,, +Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N),5663,4179,16203,9807,0,15,1,3500000,0,, +Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N),5664,4178,16202,9807,0,9,1,2500000,0,, +Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N),5665,4178,16203,9807,0,15,1,3500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N),5670,4179,16263,9807,0,9,1,3500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N),5671,4179,16264,9807,0,12,1,4500000,0,, +Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N),5672,4179,16265,9807,0,15,1,5500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N),5673,4178,16263,9807,0,9,1,3500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N),5674,4178,16264,9807,0,12,1,4500000,0,, +Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N),5675,4178,16265,9807,0,15,1,5500000,0,, +DHDN / 3-degree Gauss-Kruger zone 2 (E-N),5676,4314,16262,9807,0,6,1,2500000,0,, +DHDN / 3-degree Gauss-Kruger zone 3 (E-N),5677,4314,16263,9807,0,9,1,3500000,0,, +DHDN / 3-degree Gauss-Kruger zone 4 (E-N),5678,4314,16264,9807,0,12,1,4500000,0,, +DHDN / 3-degree Gauss-Kruger zone 5 (E-N),5679,4314,16265,9807,0,15,1,5500000,0,, +DHDN / 3-degree Gauss-Kruger zone 1 (E-N),5680,4314,16261,9807,0,3,1,1500000,0,, +NZGD2000 / UTM zone 1S,5700,4167,16101,9807,0,-177,0.9996,500000,10000000,, +AGD66 / ACT Standard Grid,5825,4202,5824,9807,-35.19038506,149.003346139,1.000086,200000,600000,, +Yemen NGN96 / UTM zone 37N,5836,4163,16037,9807,0,39,0.9996,500000,0,, +Yemen NGN96 / UTM zone 40N,5837,4163,16040,9807,0,57,0.9996,500000,0,, +Peru96 / UTM zone 17S,5839,5373,16117,9807,0,-81,0.9996,500000,10000000,, +WGS 84 / TM 12 SE,5842,4326,16612,9807,0,12,0.9996,500000,10000000,, +RGRDC 2005 / Congo TM zone 30,5844,4046,17430,9807,0,30,0.9999,500000,10000000,, +SAD69(96) / UTM zone 22S,5858,5527,16122,9807,0,-51,0.9996,500000,10000000,, +SAD69(96) / UTM zone 18S,5875,5527,16118,9807,0,-75,0.9996,500000,10000000,, +SAD69(96) / UTM zone 19S,5876,5527,16119,9807,0,-69,0.9996,500000,10000000,, +SAD69(96) / UTM zone 20S,5877,5527,16120,9807,0,-63,0.9996,500000,10000000,, +Cadastre 1997 / UTM zone 38S,5879,4475,16138,9807,0,45,0.9996,500000,10000000,, +WGS 84 / EPSG Arctic Regional zone A1,5921,4326,5906,9802,81.19020136,-111,,0,0,85,77 +WGS 84 / EPSG Arctic Regional zone A2,5922,4326,5907,9802,81.19020136,-39,,0,0,85,77 +WGS 84 / EPSG Arctic Regional zone A3,5923,4326,5908,9802,81.19020136,33,,0,0,85,77 +WGS 84 / EPSG Arctic Regional zone A4,5924,4326,5909,9802,81.19020136,105,,0,0,85,77 +WGS 84 / EPSG Arctic Regional zone A5,5925,4326,5910,9802,81.19020136,177,,0,0,85,77 +WGS 84 / EPSG Arctic Regional zone B1,5926,4326,5911,9802,73.09206671,-111,,0,0,77,69 +WGS 84 / EPSG Arctic Regional zone B2,5927,4326,5912,9802,73.09206671,-39,,0,0,77,69 +WGS 84 / EPSG Arctic Regional zone B3,5928,4326,5913,9802,73.09206671,33,,0,0,77,69 +WGS 84 / EPSG Arctic Regional zone B4,5929,4326,5914,9802,73.09206671,105,,0,0,77,69 +WGS 84 / EPSG Arctic Regional zone B5,5930,4326,5915,9802,73.09206671,177,,0,0,77,69 +WGS 84 / EPSG Arctic Regional zone C1,5931,4326,5916,9802,65.06045752,-111,,0,0,69,61 +WGS 84 / EPSG Arctic Regional zone C2,5932,4326,5917,9802,65.06045752,-39,,0,0,69,61 +WGS 84 / EPSG Arctic Regional zone C3,5933,4326,5918,9802,65.06045752,33,,0,0,69,61 +WGS 84 / EPSG Arctic Regional zone C4,5934,4326,5919,9802,65.06045752,105,,0,0,69,61 +WGS 84 / EPSG Arctic Regional zone C5,5935,4326,5920,9802,65.06045752,177,,0,0,69,61 +GR96 / EPSG Arctic zone 1-25,6050,4747,5979,9802,85.2613626,-30,,25500000,1500000,87,83.4 +GR96 / EPSG Arctic zone 2-18,6051,4747,5987,9802,82.03303296,-52,,18500000,2500000,83.4,80.2 +GR96 / EPSG Arctic zone 2-20,6052,4747,5988,9802,82.03303296,-12,,20500000,2500000,83.4,80.2 +GR96 / EPSG Arctic zone 3-29,6053,4747,6002,9802,78.42264151,-69,,29500000,3500000,80.2,77 +GR96 / EPSG Arctic zone 3-31,6054,4747,6003,9802,78.42264151,-39,,31500000,3500000,80.2,77 +GR96 / EPSG Arctic zone 3-33,6055,4747,6004,9802,78.42264151,-10,,33500000,3500000,80.2,77 +GR96 / EPSG Arctic zone 4-20,6056,4747,6009,9802,75.21518519,-64,,20500000,4500000,77,73.4 +GR96 / EPSG Arctic zone 4-22,6057,4747,6010,9802,75.21518519,-39,,22500000,4500000,77,73.4 +GR96 / EPSG Arctic zone 4-24,6058,4747,6011,9802,75.21518519,-14,,24500000,4500000,77,73.4 +GR96 / EPSG Arctic zone 5-41,6059,4747,6035,9802,72.01300331,-62,,41500000,5500000,73.4,70.2 +GR96 / EPSG Arctic zone 5-43,6060,4747,6036,9802,72.01300331,-42,,43500000,5500000,73.4,70.2 +GR96 / EPSG Arctic zone 5-45,6061,4747,6037,9802,72.01300331,-22,,45500000,5500000,73.4,70.2 +GR96 / EPSG Arctic zone 6-26,6062,4747,6045,9802,68.4114912,-56,,26500000,6500000,70.2,67 +GR96 / EPSG Arctic zone 6-28,6063,4747,6046,9802,68.4114912,-38,,28500000,6500000,70.2,67 +GR96 / EPSG Arctic zone 6-30,6064,4747,6047,9802,68.4114912,-20,,30500000,6500000,70.2,67 +GR96 / EPSG Arctic zone 7-11,6065,4747,6048,9802,65.21037415,-51,,11500000,7500000,67,63.4 +GR96 / EPSG Arctic zone 7-13,6066,4747,6049,9802,65.21037415,-34,,13500000,7500000,67,63.4 +GR96 / EPSG Arctic zone 8-20,6067,4747,5943,9802,62.00551048,-52,,20500000,8500000,63.4,60.2 +GR96 / EPSG Arctic zone 8-22,6068,4747,5944,9802,62.00551048,-37,,22500000,8500000,63.4,60.2 +ETRS89 / EPSG Arctic zone 2-22,6069,4258,5989,9802,82.03303296,16,,22500000,2500000,83.4,80.2 +ETRS89 / EPSG Arctic zone 3-11,6070,4258,5993,9802,78.42264151,21,,11500000,3500000,80.2,77 +ETRS89 / EPSG Arctic zone 4-26,6071,4258,6012,9802,75.21518519,10,,26500000,4500000,77,73.4 +ETRS89 / EPSG Arctic zone 4-28,6072,4258,6013,9802,75.21518519,34,,28500000,4500000,77,73.4 +ETRS89 / EPSG Arctic zone 5-11,6073,4258,6020,9802,72.01300331,14,,11500000,5500000,73.4,70.2 +ETRS89 / EPSG Arctic zone 5-13,6074,4258,6021,9802,72.01300331,34,,13500000,5500000,73.4,70.2 +WGS 84 / EPSG Arctic zone 2-24,6075,4326,5990,9802,82.03303296,53,,24500000,2500000,83.4,80.2 +WGS 84 / EPSG Arctic zone 2-26,6076,4326,5991,9802,82.03303296,93,,26500000,2500000,83.4,80.2 +WGS 84 / EPSG Arctic zone 3-13,6077,4326,5994,9802,78.42264151,52,,13500000,3500000,80.2,77 +WGS 84 / EPSG Arctic zone 3-15,6078,4326,5995,9802,78.42264151,83,,15500000,3500000,80.2,77 +WGS 84 / EPSG Arctic zone 3-17,6079,4326,5996,9802,78.42264151,114,,17500000,3500000,80.2,77 +WGS 84 / EPSG Arctic zone 3-19,6080,4326,5997,9802,78.42264151,145,,19500000,3500000,80.2,77 +WGS 84 / EPSG Arctic zone 4-30,6081,4326,6014,9802,75.21518519,58,,30500000,4500000,77,73.4 +WGS 84 / EPSG Arctic zone 4-32,6082,4326,6015,9802,75.21518519,82,,32500000,4500000,77,73.4 +WGS 84 / EPSG Arctic zone 4-34,6083,4326,6016,9802,75.21518519,106,,34500000,4500000,77,73.4 +WGS 84 / EPSG Arctic zone 4-36,6084,4326,6017,9802,75.21518519,130,,36500000,4500000,77,73.4 +WGS 84 / EPSG Arctic zone 4-38,6085,4326,6018,9802,75.21518519,154,,38500000,4500000,77,73.4 +WGS 84 / EPSG Arctic zone 4-40,6086,4326,6019,9802,75.21518519,179,,40500000,4500000,77,73.4 +WGS 84 / EPSG Arctic zone 5-15,6087,4326,6022,9802,72.01300331,54,,15500000,5500000,73.4,70.2 +WGS 84 / EPSG Arctic zone 5-17,6088,4326,6023,9802,72.01300331,74,,17500000,5500000,73.4,70.2 +WGS 84 / EPSG Arctic zone 5-19,6089,4326,6024,9802,72.01300331,95,,19500000,5500000,73.4,70.2 +WGS 84 / EPSG Arctic zone 5-21,6090,4326,6025,9802,72.01300331,116,,21500000,5500000,73.4,70.2 +WGS 84 / EPSG Arctic zone 5-23,6091,4326,6026,9802,72.01300331,137,,23500000,5500000,73.4,70.2 +WGS 84 / EPSG Arctic zone 5-25,6092,4326,6027,9802,72.01300331,158,,25500000,5500000,73.4,70.2 +WGS 84 / EPSG Arctic zone 5-27,6093,4326,6028,9802,72.01300331,179,,27500000,5500000,73.4,70.2 +NAD83(NSRS2007) / EPSG Arctic zone 5-29,6094,4759,6029,9802,72.01300331,-163,,29500000,5500000,73.4,70.2 +NAD83(NSRS2007) / EPSG Arctic zone 5-31,6095,4759,6030,9802,72.01300331,-147,,31500000,5500000,73.4,70.2 +NAD83(NSRS2007) / EPSG Arctic zone 6-14,6096,4759,6039,9802,68.4114912,-165,,14500000,6500000,70.2,67 +NAD83(NSRS2007) / EPSG Arctic zone 6-16,6097,4759,6040,9802,68.4114912,-147,,16500000,6500000,70.2,67 +NAD83(CSRS) / EPSG Arctic zone 1-23,6098,4617,5978,9802,85.2613626,-90,,23500000,1500000,87,83.4 +NAD83(CSRS) / EPSG Arctic zone 2-14,6099,4617,5985,9802,82.03303296,-115,,14500000,2500000,83.4,80.2 +NAD83(CSRS) / EPSG Arctic zone 2-16,6100,4617,5986,9802,82.03303296,-75,,16500000,2500000,83.4,80.2 +NAD83(CSRS) / EPSG Arctic zone 3-25,6101,4617,6000,9802,78.42264151,-129,,25500000,3500000,80.2,77 +NAD83(CSRS) / EPSG Arctic zone 3-27,6102,4617,6001,9802,78.42264151,-99,,27500000,3500000,80.2,77 +NAD83(CSRS) / EPSG Arctic zone 3-29,6103,4617,6002,9802,78.42264151,-69,,29500000,3500000,80.2,77 +NAD83(CSRS) / EPSG Arctic zone 4-14,6104,4617,6006,9802,75.21518519,-129,,14500000,4500000,77,73.4 +NAD83(CSRS) / EPSG Arctic zone 4-16,6105,4617,6007,9802,75.21518519,-104,,16500000,4500000,77,73.4 +NAD83(CSRS) / EPSG Arctic zone 4-18,6106,4617,6008,9802,75.21518519,-79,,18500000,4500000,77,73.4 +NAD83(CSRS) / EPSG Arctic zone 5-33,6107,4617,6031,9802,72.01300331,-131,,33500000,5500000,73.4,70.2 +NAD83(CSRS) / EPSG Arctic zone 5-35,6108,4617,6032,9802,72.01300331,-111,,35500000,5500000,73.4,70.2 +NAD83(CSRS) / EPSG Arctic zone 5-37,6109,4617,6033,9802,72.01300331,-91,,37500000,5500000,73.4,70.2 +NAD83(CSRS) / EPSG Arctic zone 5-39,6110,4617,6034,9802,72.01300331,-71,,39500000,5500000,73.4,70.2 +NAD83(CSRS) / EPSG Arctic zone 6-18,6111,4617,6041,9802,68.4114912,-132,,18500000,6500000,70.2,67 +NAD83(CSRS) / EPSG Arctic zone 6-20,6112,4617,6042,9802,68.4114912,-113,,20500000,6500000,70.2,67 +NAD83(CSRS) / EPSG Arctic zone 6-22,6113,4617,6043,9802,68.4114912,-94,,22500000,6500000,70.2,67 +NAD83(CSRS) / EPSG Arctic zone 6-24,6114,4617,6044,9802,68.4114912,-75,,24500000,6500000,70.2,67 +WGS 84 / EPSG Arctic zone 1-27,6115,4326,5980,9802,85.2613626,30,,27500000,1500000,87,83.4 +WGS 84 / EPSG Arctic zone 1-29,6116,4326,5981,9802,85.2613626,90,,29500000,1500000,87,83.4 +WGS 84 / EPSG Arctic zone 1-31,6117,4326,5982,9802,85.2613626,150,,31500000,1500000,87,83.4 +WGS 84 / EPSG Arctic zone 1-21,6118,4326,5977,9802,85.2613626,-150,,21500000,1500000,87,83.4 +WGS 84 / EPSG Arctic zone 2-28,6119,4326,5992,9802,82.03303296,133,,28500000,2500000,83.4,80.2 +WGS 84 / EPSG Arctic zone 2-10,6120,4326,5983,9802,82.03303296,166,,10500000,2500000,83.4,80.2 +WGS 84 / EPSG Arctic zone 2-12,6121,4326,5984,9802,82.03303296,-154,,12500000,2500000,83.4,80.2 +WGS 84 / EPSG Arctic zone 3-21,6122,4326,5998,9802,78.42264151,176,,21500000,3500000,80.2,77 +WGS 84 / EPSG Arctic zone 3-23,6123,4326,5999,9802,78.42264151,-153,,23500000,3500000,80.2,77 +WGS 84 / EPSG Arctic zone 4-12,6124,4326,6005,9802,75.21518519,-155,,12500000,4500000,77,73.4 +ETRS89 / EPSG Arctic zone 5-47,6125,4258,6038,9802,72.01300331,-5,,47500000,5500000,73.4,70.2 +Sister Islands National Grid 1961,6129,4726,6127,9807,0,-81,0.9996,1640419.9475,0,, +Cayman Islands National Grid 2011,6141,6135,6126,9802,19.2,80.34,,2950000,1900000,19.2,19.42 +Macedonia State Coordinate System,6204,3906,6203,9807,0,21,0.9999,500000,0,, +SIRGAS 2000 / UTM zone 23N,6210,4674,16023,9807,0,-45,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 24N,6211,4674,16024,9807,0,-39,0.9996,500000,0,, +Macedonia State Coordinate System zone 7,6316,3906,18277,9807,0,21,0.9999,7500000,0,, +Mexico ITRF92 / LCC,6362,4483,6361,9802,12,-102,,2500000,0,17.5,29.5 +Mexico ITRF2008 / UTM zone 11N,6366,6365,16011,9807,0,-117,0.9996,500000,0,, +Mexico ITRF2008 / UTM zone 12N,6367,6365,16012,9807,0,-111,0.9996,500000,0,, +Mexico ITRF2008 / UTM zone 13N,6368,6365,16013,9807,0,-105,0.9996,500000,0,, +Mexico ITRF2008 / UTM zone 14N,6369,6365,16014,9807,0,-99,0.9996,500000,0,, +Mexico ITRF2008 / UTM zone 15N,6370,6365,16015,9807,0,-93,0.9996,500000,0,, +Mexico ITRF2008 / UTM zone 16N,6371,6365,16016,9807,0,-87,0.9996,500000,0,, +Mexico ITRF2008 / LCC,6372,6365,6361,9802,12,-102,,2500000,0,17.5,29.5 +Cayman Islands National Grid 2011,6391,6135,6390,9802,19.2,-80.34,,2950000,1900000,19.2,19.42 +NAD83(2011) / Nebraska (ftUS),6517,4759,15396,9802,39.5,-100,,1640416.6667,0,43,40 +NAD83(2011) / Wisconsin Central,6604,4759,14832,9802,43.5,-90,,600000,0,45.3,44.15 +NAD83(CSRS) / Quebec Lambert,6622,4617,19944,9802,44,-68.3,,0,0,60,46 +NAD83 / Quebec Albers,6623,4269,6645,9822,44,-68.3,,0,0,-68.3,60 +NAD83(CSRS) / Quebec Albers,6624,4617,6645,9822,44,-68.3,,0,0,-68.3,60 +Karbala 1979 / Iraq National Grid,6646,4743,19907,9807,29.0134566,46.3,0.9994,800000,0,, +WGS 84 / TM 60 SW,6703,4326,6702,9807,0,-60,0.9996,500000,10000000,, +RDN2008 / UTM zone 32N (N-E),6707,6706,16032,9807,0,9,0.9996,500000,0,, +RDN2008 / UTM zone 33N (N-E),6708,6706,16033,9807,0,15,0.9996,500000,0,, +RDN2008 / UTM zone 34N (N-E),6709,6706,16034,9807,0,21,0.9996,500000,0,, +WGS 84 / CIG92,6720,4326,6716,9807,0,105.373,1.000024,50000,1300000,, +GDA94 / CIG94,6721,4283,6717,9807,0,105.373,1.00002514,50000,1300000,, +WGS 84 / CKIG92,6722,4326,6718,9807,0,96.523,1,50000,1400000,, +GDA94 / CKIG94,6723,4283,6719,9807,0,96.523,0.99999387,50000,1500000,, +GDA94 / MGA zone 41,6732,4283,6725,9807,0,63,0.9996,500000,10000000,, +GDA94 / MGA zone 42,6733,4283,6726,9807,0,69,0.9996,500000,10000000,, +GDA94 / MGA zone 43,6734,4283,6727,9807,0,75,0.9996,500000,10000000,, +GDA94 / MGA zone 44,6735,4283,6728,9807,0,81,0.9996,500000,10000000,, +GDA94 / MGA zone 46,6736,4283,6729,9807,0,93,0.9996,500000,10000000,, +GDA94 / MGA zone 47,6737,4283,6730,9807,0,99,0.9996,500000,10000000,, +GDA94 / MGA zone 59,6738,4283,6731,9807,0,171,0.9996,500000,10000000,, +ETRS89 / Albania TM 2010,6870,4258,6869,9807,0,20,1,500000,0,, +RDN2008 / Italy zone (N-E),6875,6706,6877,9807,0,12,0.9985,7000000,0,, +RDN2008 / Zone 12 (N-E),6876,6706,6878,9807,0,12,1,3000000,0,, +South East Island 1943 / UTM zone 40N,6915,6892,16040,9807,0,57,0.9996,500000,0,, +NAD83 / Kansas LCC,6922,4269,6920,9802,36,-98.15,,400000,0,39.3,37.3 +NAD83 / Kansas LCC (ftUS),6923,4269,6921,9802,36,-98.15,,1312333.3333,0,39.3,37.3 +WGS 84 / NSIDC EASE-Grid 2.0 North,6931,4326,6929,9820,90,0,,0,0,, +WGS 84 / NSIDC EASE-Grid 2.0 South,6932,4326,6930,9820,-90,0,,0,0,, +ETRS89 / Albania LCC 2010,6962,4258,6961,9802,41,20,,0,0,39,43 +Nahrwan 1934 / UTM zone 37N,7005,4744,16037,9807,0,39,0.9996,500000,0,, +Nahrwan 1934 / UTM zone 38N,7006,4744,16038,9807,0,45,0.9996,500000,0,, +Nahrwan 1934 / UTM zone 39N,7007,4744,16039,9807,0,51,0.9996,500000,0,, +Palestine 1923 / Palestine Grid modified,7142,4281,7141,9807,31.4402749,35.124349,1,170251.555,126867.909,, +ONGD14 / UTM zone 39N,7374,7373,16039,9807,0,51,0.9996,500000,0,, +ONGD14 / UTM zone 40N,7375,7373,16040,9807,0,57,0.9996,500000,0,, +ONGD14 / UTM zone 41N,7376,7373,16041,9807,0,63,0.9996,500000,0,, +WGS 84 / India NSF LCC,7755,4326,7722,9802,24,80,,4000000,4000000,12.2822638,35.1022096 +WGS 84 / Andhra Pradesh,7756,4326,7723,9802,16.25543298,80.875,,1000000,1000000,13.75,18.75 +WGS 84 / Arunachal Pradesh,7757,4326,7724,9802,28.00157897,94.5,,1000000,1000000,27,29 +WGS 84 / Assam,7758,4326,7725,9802,26.00257703,92.75,,1000000,1000000,24.4,27.2 +WGS 84 / Bihar,7759,4326,7726,9802,25.87725247,85.875,,1000000,1000000,24.625,27.125 +WGS 84 / Delhi,7760,4326,7727,9802,28.62510126,77,,1000000,1000000,28.223,28.523 +WGS 84 / Gujarat,7761,4326,7728,9802,22.37807121,71.375,,1000000,1000000,20.473,23.573 +WGS 84 / Haryana,7762,4326,7729,9802,29.25226266,76,,1000000,1000000,28.05,30.25 +WGS 84 / Himachal Pradesh,7763,4326,7730,9802,31.75183497,77.375,,1000000,1000000,30.75,32.75 +WGS 84 / Jammu and Kashmir,7764,4326,7731,9802,34.75570874,76.5,,1000000,1000000,33.05,36.25 +WGS 84 / Jharkhand,7765,4326,7732,9802,23.62652682,85.625,,1000000,1000000,22.323,24.423 +WGS 84 / Madhya Pradesh,7766,4326,7733,9802,24.00529821,78.375,,1000000,1000000,22,26 +WGS 84 / Maharashtra,7767,4326,7734,9802,18.88015774,76.75,,1000000,1000000,16.373,21.073 +WGS 84 / Manipur,7768,4326,7735,9802,24.75060911,94,,1000000,1000000,24.05,25.25 +WGS 84 / Meghalaya,7769,4326,7736,9802,25.62524747,91.375,,1000000,1000000,25.123,26.023 +WGS 84 / Nagaland,7770,4326,7737,9802,26.12581974,94.375,,1000000,1000000,25.223,26.523 +WGS 84 / India Northeast,7771,4326,7738,9802,25.63452135,93.5,,1000000,1000000,23.023,28.123 +WGS 84 / Orissa,7772,4326,7739,9802,20.25305174,84.375,,1000000,1000000,18.35,21.55 +WGS 84 / Punjab,7773,4326,7740,9802,31.00178226,75.375,,1000000,1000000,30,32 +WGS 84 / Rajasthan,7774,4326,7741,9802,26.88505546,73.875,,1000000,1000000,24.173,29.273 +WGS 84 / Uttar Pradesh,7775,4326,7742,9802,27.13270823,80.875,,1000000,1000000,24.523,29.223 +WGS 84 / Uttaranchal,7776,4326,7743,9802,30.0017132,79.375,,1000000,1000000,29,31 +WGS 84 / Andaman and Nicobar,7777,4326,7744,9807,10.25,93.25,0.9999428,1000000,1000000,, +WGS 84 / Chhattisgarh,7778,4326,7745,9807,21,82.25,0.9998332,1000000,1000000,, +WGS 84 / Goa,7779,4326,7746,9807,15.375,74,0.9999913,1000000,1000000,, +WGS 84 / Karnataka,7780,4326,7747,9807,15.125,76.375,0.9998012,1000000,1000000,, +WGS 84 / Kerala,7781,4326,7748,9807,10.5,76,0.9999177,1000000,1000000,, +WGS 84 / Lakshadweep,7782,4326,7749,9807,10,73.125,0.9999536,1000000,1000000,, +WGS 84 / Mizoram,7783,4326,7750,9807,23.125,92.75,0.9999821,1000000,1000000,, +WGS 84 / Sikkim,7784,4326,7751,9807,27.625,88.5,0.9999926,1000000,1000000,, +WGS 84 / Tamil Nadu,7785,4326,7752,9807,10.875,78.375,0.9997942,1000000,1000000,, +WGS 84 / Tripura,7786,4326,7753,9807,23.75,91.75,0.9999822,1000000,1000000,, +WGS 84 / West Bengal,7787,4326,7754,9807,24.375,87.875,0.9998584,1000000,1000000,, +RDN2008 / UTM zone 32N,7791,6706,16032,9807,0,9,0.9996,500000,0,, +RDN2008 / UTM zone 33N,7792,6706,16033,9807,0,15,0.9996,500000,0,, +RDN2008 / UTM zone 34N,7793,6706,16034,9807,0,21,0.9996,500000,0,, +RDN2008 / Italy zone (E-N),7794,6706,6877,9807,0,12,0.9985,7000000,0,, +RDN2008 / Zone 12 (E-N),7795,6706,6878,9807,0,12,1,3000000,0,, +Pulkovo 1942 / CS63 zone X1,7825,4284,7818,9807,0.05,23.3,1,1300000,0,, +Pulkovo 1942 / CS63 zone X2,7826,4284,7819,9807,0.05,26.3,1,2300000,0,, +Pulkovo 1942 / CS63 zone X3,7827,4284,7820,9807,0.05,29.3,1,3300000,0,, +Pulkovo 1942 / CS63 zone X4,7828,4284,7821,9807,0.05,32.3,1,4300000,0,, +Pulkovo 1942 / CS63 zone X5,7829,4284,7822,9807,0.05,35.3,1,5300000,0,, +Pulkovo 1942 / CS63 zone X6,7830,4284,7823,9807,0.05,38.3,1,6300000,0,, +Pulkovo 1942 / CS63 zone X7,7831,4284,7824,9807,0.05,41.3,1,7300000,0,, +Astro DOS 71 / SHLG71,7877,4710,7875,9807,-15.58,-5.43,1,300000,2000000,, +Astro DOS 71 / UTM zone 30S,7878,4710,16130,9807,0,-3,0.9996,500000,10000000,, +St. Helena Tritan / SHLG(Tritan),7882,7881,7876,9807,-15.58,-5.43,1,299483.737,2000527.879,, +St. Helena Tritan / UTM zone 30S,7883,7881,16130,9807,0,-3,0.9996,500000,10000000,, +SHMG2015,7887,7886,16130,9807,0,-3,0.9996,500000,10000000,, +Adindan / UTM zone 35N,20135,4201,16035,9807,0,27,0.9996,500000,0,, +Adindan / UTM zone 36N,20136,4201,16036,9807,0,33,0.9996,500000,0,, +Adindan / UTM zone 37N,20137,4201,16037,9807,0,39,0.9996,500000,0,, +Adindan / UTM zone 38N,20138,4201,16038,9807,0,45,0.9996,500000,0,, +AGD66 / AMG zone 48,20248,4202,17448,9807,0,105,0.9996,500000,10000000,, +AGD66 / AMG zone 49,20249,4202,17449,9807,0,111,0.9996,500000,10000000,, +AGD66 / AMG zone 50,20250,4202,17450,9807,0,117,0.9996,500000,10000000,, +AGD66 / AMG zone 51,20251,4202,17451,9807,0,123,0.9996,500000,10000000,, +AGD66 / AMG zone 52,20252,4202,17452,9807,0,129,0.9996,500000,10000000,, +AGD66 / AMG zone 53,20253,4202,17453,9807,0,135,0.9996,500000,10000000,, +AGD66 / AMG zone 54,20254,4202,17454,9807,0,141,0.9996,500000,10000000,, +AGD66 / AMG zone 55,20255,4202,17455,9807,0,147,0.9996,500000,10000000,, +AGD66 / AMG zone 56,20256,4202,17456,9807,0,153,0.9996,500000,10000000,, +AGD66 / AMG zone 57,20257,4202,17457,9807,0,159,0.9996,500000,10000000,, +AGD66 / AMG zone 58,20258,4202,17458,9807,0,165,0.9996,500000,10000000,, +AGD84 / AMG zone 48,20348,4203,17448,9807,0,105,0.9996,500000,10000000,, +AGD84 / AMG zone 49,20349,4203,17449,9807,0,111,0.9996,500000,10000000,, +AGD84 / AMG zone 50,20350,4203,17450,9807,0,117,0.9996,500000,10000000,, +AGD84 / AMG zone 51,20351,4203,17451,9807,0,123,0.9996,500000,10000000,, +AGD84 / AMG zone 52,20352,4203,17452,9807,0,129,0.9996,500000,10000000,, +AGD84 / AMG zone 53,20353,4203,17453,9807,0,135,0.9996,500000,10000000,, +AGD84 / AMG zone 54,20354,4203,17454,9807,0,141,0.9996,500000,10000000,, +AGD84 / AMG zone 55,20355,4203,17455,9807,0,147,0.9996,500000,10000000,, +AGD84 / AMG zone 56,20356,4203,17456,9807,0,153,0.9996,500000,10000000,, +AGD84 / AMG zone 57,20357,4203,17457,9807,0,159,0.9996,500000,10000000,, +AGD84 / AMG zone 58,20358,4203,17458,9807,0,165,0.9996,500000,10000000,, +Ain el Abd / UTM zone 36N,20436,4204,16036,9807,0,33,0.9996,500000,0,, +Ain el Abd / UTM zone 37N,20437,4204,16037,9807,0,39,0.9996,500000,0,, +Ain el Abd / UTM zone 38N,20438,4204,16038,9807,0,45,0.9996,500000,0,, +Ain el Abd / UTM zone 39N,20439,4204,16039,9807,0,51,0.9996,500000,0,, +Ain el Abd / UTM zone 40N,20440,4204,16040,9807,0,57,0.9996,500000,0,, +Ain el Abd / Bahrain Grid,20499,4204,19900,9807,0,51,0.9996,500000,0,, +Afgooye / UTM zone 38N,20538,4205,16038,9807,0,45,0.9996,500000,0,, +Afgooye / UTM zone 39N,20539,4205,16039,9807,0,51,0.9996,500000,0,, +Lisbon (Lisbon) / Portuguese National Grid,20790,4803,19936,9807,39.4,1,1,200000,300000,, +Lisbon (Lisbon) / Portuguese Grid,20791,4803,19969,9807,39.4,1,1,0,0,, +Aratu / UTM zone 22S,20822,4208,16122,9807,0,-51,0.9996,500000,10000000,, +Aratu / UTM zone 23S,20823,4208,16123,9807,0,-45,0.9996,500000,10000000,, +Aratu / UTM zone 24S,20824,4208,16124,9807,0,-39,0.9996,500000,10000000,, +Arc 1950 / UTM zone 34S,20934,4209,16134,9807,0,21,0.9996,500000,10000000,, +Arc 1950 / UTM zone 35S,20935,4209,16135,9807,0,27,0.9996,500000,10000000,, +Arc 1950 / UTM zone 36S,20936,4209,16136,9807,0,33,0.9996,500000,10000000,, +Arc 1960 / UTM zone 35S,21035,4210,16135,9807,0,27,0.9996,500000,10000000,, +Arc 1960 / UTM zone 36S,21036,4210,16136,9807,0,33,0.9996,500000,10000000,, +Arc 1960 / UTM zone 37S,21037,4210,16137,9807,0,39,0.9996,500000,10000000,, +Arc 1960 / UTM zone 35N,21095,4210,16035,9807,0,27,0.9996,500000,0,, +Arc 1960 / UTM zone 36N,21096,4210,16036,9807,0,33,0.9996,500000,0,, +Arc 1960 / UTM zone 37N,21097,4210,16037,9807,0,39,0.9996,500000,0,, +Batavia / UTM zone 48S,21148,4211,16148,9807,0,105,0.9996,500000,10000000,, +Batavia / UTM zone 49S,21149,4211,16149,9807,0,111,0.9996,500000,10000000,, +Batavia / UTM zone 50S,21150,4211,16150,9807,0,117,0.9996,500000,10000000,, +Barbados 1938 / British West Indies Grid,21291,4212,19942,9807,0,-62,0.9995,400000,0,, +Barbados 1938 / Barbados National Grid,21292,4212,19943,9807,13.1035,-59.3335,0.9999986,30000,75000,, +Beijing 1954 / Gauss-Kruger zone 13,21413,4214,16213,9807,0,75,1,13500000,0,, +Beijing 1954 / Gauss-Kruger zone 14,21414,4214,16214,9807,0,81,1,14500000,0,, +Beijing 1954 / Gauss-Kruger zone 15,21415,4214,16215,9807,0,87,1,15500000,0,, +Beijing 1954 / Gauss-Kruger zone 16,21416,4214,16216,9807,0,93,1,16500000,0,, +Beijing 1954 / Gauss-Kruger zone 17,21417,4214,16217,9807,0,99,1,17500000,0,, +Beijing 1954 / Gauss-Kruger zone 18,21418,4214,16218,9807,0,105,1,18500000,0,, +Beijing 1954 / Gauss-Kruger zone 19,21419,4214,16219,9807,0,111,1,19500000,0,, +Beijing 1954 / Gauss-Kruger zone 20,21420,4214,16220,9807,0,117,1,20500000,0,, +Beijing 1954 / Gauss-Kruger zone 21,21421,4214,16221,9807,0,123,1,21500000,0,, +Beijing 1954 / Gauss-Kruger zone 22,21422,4214,16222,9807,0,129,1,22500000,0,, +Beijing 1954 / Gauss-Kruger zone 23,21423,4214,16223,9807,0,135,1,23500000,0,, +Beijing 1954 / Gauss-Kruger CM 75E,21453,4214,16313,9807,0,75,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 81E,21454,4214,16314,9807,0,81,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 87E,21455,4214,16315,9807,0,87,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 93E,21456,4214,16316,9807,0,93,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 99E,21457,4214,16317,9807,0,99,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 105E,21458,4214,16318,9807,0,105,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 111E,21459,4214,16319,9807,0,111,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 117E,21460,4214,16320,9807,0,117,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 123E,21461,4214,16321,9807,0,123,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 129E,21462,4214,16322,9807,0,129,1,500000,0,, +Beijing 1954 / Gauss-Kruger CM 135E,21463,4214,16323,9807,0,135,1,500000,0,, +Beijing 1954 / Gauss-Kruger 13N,21473,4214,16313,9807,0,75,1,500000,0,, +Beijing 1954 / Gauss-Kruger 14N,21474,4214,16314,9807,0,81,1,500000,0,, +Beijing 1954 / Gauss-Kruger 15N,21475,4214,16315,9807,0,87,1,500000,0,, +Beijing 1954 / Gauss-Kruger 16N,21476,4214,16316,9807,0,93,1,500000,0,, +Beijing 1954 / Gauss-Kruger 17N,21477,4214,16317,9807,0,99,1,500000,0,, +Beijing 1954 / Gauss-Kruger 18N,21478,4214,16318,9807,0,105,1,500000,0,, +Beijing 1954 / Gauss-Kruger 19N,21479,4214,16319,9807,0,111,1,500000,0,, +Beijing 1954 / Gauss-Kruger 20N,21480,4214,16320,9807,0,117,1,500000,0,, +Beijing 1954 / Gauss-Kruger 21N,21481,4214,16321,9807,0,123,1,500000,0,, +Beijing 1954 / Gauss-Kruger 22N,21482,4214,16322,9807,0,129,1,500000,0,, +Beijing 1954 / Gauss-Kruger 23N,21483,4214,16323,9807,0,135,1,500000,0,, +Bogota 1975 / UTM zone 17N,21817,4218,16017,9807,0,-81,0.9996,500000,0,, +Bogota 1975 / UTM zone 18N,21818,4218,16018,9807,0,-75,0.9996,500000,0,, +Bogota 1975 / Colombia West zone,21891,4218,18051,9807,4.355657,-77.04513,1,1000000,1000000,, +Bogota 1975 / Colombia Bogota zone,21892,4218,18052,9807,4.355657,-74.04513,1,1000000,1000000,, +Bogota 1975 / Colombia East Central zone,21893,4218,18053,9807,4.355657,-71.04513,1,1000000,1000000,, +Bogota 1975 / Colombia East,21894,4218,18054,9807,4.355657,-68.04513,1,1000000,1000000,, +Bogota 1975 / Colombia West zone,21896,4218,18051,9807,4.355657,-77.04513,1,1000000,1000000,, +Bogota 1975 / Colombia Bogota zone,21897,4218,18052,9807,4.355657,-74.04513,1,1000000,1000000,, +Bogota 1975 / Colombia East Central zone,21898,4218,18053,9807,4.355657,-71.04513,1,1000000,1000000,, +Bogota 1975 / Colombia East,21899,4218,18054,9807,4.355657,-68.04513,1,1000000,1000000,, +Camacupa / UTM zone 32S,22032,4220,16132,9807,0,9,0.9996,500000,10000000,, +Camacupa / UTM zone 33S,22033,4220,16133,9807,0,15,0.9996,500000,10000000,, +Camacupa / TM 11.30 SE,22091,4220,16611,9807,0,11.3,0.9996,500000,10000000,, +Camacupa / TM 12 SE,22092,4220,16612,9807,0,12,0.9996,500000,10000000,, +POSGAR 98 / Argentina 1,22171,4190,18031,9807,-90,-72,1,1500000,0,, +POSGAR 98 / Argentina 2,22172,4190,18032,9807,-90,-69,1,2500000,0,, +POSGAR 98 / Argentina 3,22173,4190,18033,9807,-90,-66,1,3500000,0,, +POSGAR 98 / Argentina 4,22174,4190,18034,9807,-90,-63,1,4500000,0,, +POSGAR 98 / Argentina 5,22175,4190,18035,9807,-90,-60,1,5500000,0,, +POSGAR 98 / Argentina 6,22176,4190,18036,9807,-90,-57,1,6500000,0,, +POSGAR 98 / Argentina 7,22177,4190,18037,9807,-90,-54,1,7500000,0,, +POSGAR 94 / Argentina 1,22181,4694,18031,9807,-90,-72,1,1500000,0,, +POSGAR 94 / Argentina 2,22182,4694,18032,9807,-90,-69,1,2500000,0,, +POSGAR 94 / Argentina 3,22183,4694,18033,9807,-90,-66,1,3500000,0,, +POSGAR 94 / Argentina 4,22184,4694,18034,9807,-90,-63,1,4500000,0,, +POSGAR 94 / Argentina 5,22185,4694,18035,9807,-90,-60,1,5500000,0,, +POSGAR 94 / Argentina 6,22186,4694,18036,9807,-90,-57,1,6500000,0,, +POSGAR 94 / Argentina 7,22187,4694,18037,9807,-90,-54,1,7500000,0,, +Campo Inchauspe / Argentina 1,22191,4221,18031,9807,-90,-72,1,1500000,0,, +Campo Inchauspe / Argentina 2,22192,4221,18032,9807,-90,-69,1,2500000,0,, +Campo Inchauspe / Argentina 3,22193,4221,18033,9807,-90,-66,1,3500000,0,, +Campo Inchauspe / Argentina 4,22194,4221,18034,9807,-90,-63,1,4500000,0,, +Campo Inchauspe / Argentina 5,22195,4221,18035,9807,-90,-60,1,5500000,0,, +Campo Inchauspe / Argentina 6,22196,4221,18036,9807,-90,-57,1,6500000,0,, +Campo Inchauspe / Argentina 7,22197,4221,18037,9807,-90,-54,1,7500000,0,, +Cape / UTM zone 34S,22234,4222,16134,9807,0,21,0.9996,500000,10000000,, +Cape / UTM zone 35S,22235,4222,16135,9807,0,27,0.9996,500000,10000000,, +Cape / UTM zone 36S,22236,4222,16136,9807,0,33,0.9996,500000,10000000,, +Carthage / UTM zone 32N,22332,4223,16032,9807,0,9,0.9996,500000,0,, +Carthage / Nord Tunisie,22391,4223,18181,9801,40,11,0.999625544,500000,300000,, +Carthage / Sud Tunisie,22392,4223,18182,9801,37,11,0.999625769,500000,300000,, +Corrego Alegre 1970-72 / UTM zone 21S,22521,4225,16121,9807,0,-57,0.9996,500000,10000000,, +Corrego Alegre 1970-72 / UTM zone 22S,22522,4225,16122,9807,0,-51,0.9996,500000,10000000,, +Corrego Alegre 1970-72 / UTM zone 23S,22523,4225,16123,9807,0,-45,0.9996,500000,10000000,, +Corrego Alegre 1970-72 / UTM zone 24S,22524,4225,16124,9807,0,-39,0.9996,500000,10000000,, +Corrego Alegre 1970-72 / UTM zone 25S,22525,4225,16125,9807,0,-33,0.9996,500000,10000000,, +Deir ez Zor / Syria Lambert,22770,4227,19948,9801,34.39,37.21,0.9996256,300000,300000,, +Egypt 1907 / Blue Belt,22991,4229,18071,9807,30,35,1,300000,1100000,, +Egypt 1907 / Red Belt,22992,4229,18072,9807,30,31,1,615000,810000,, +Egypt 1907 / Purple Belt,22993,4229,18073,9807,30,27,1,700000,200000,, +Egypt 1907 / Extended Purple Belt,22994,4229,18074,9807,30,27,1,700000,1200000,, +ED50 / UTM zone 28N,23028,4230,16028,9807,0,-15,0.9996,500000,0,, +ED50 / UTM zone 29N,23029,4230,16029,9807,0,-9,0.9996,500000,0,, +ED50 / UTM zone 30N,23030,4230,16030,9807,0,-3,0.9996,500000,0,, +ED50 / UTM zone 31N,23031,4230,16031,9807,0,3,0.9996,500000,0,, +ED50 / UTM zone 32N,23032,4230,16032,9807,0,9,0.9996,500000,0,, +ED50 / UTM zone 33N,23033,4230,16033,9807,0,15,0.9996,500000,0,, +ED50 / UTM zone 34N,23034,4230,16034,9807,0,21,0.9996,500000,0,, +ED50 / UTM zone 35N,23035,4230,16035,9807,0,27,0.9996,500000,0,, +ED50 / UTM zone 36N,23036,4230,16036,9807,0,33,0.9996,500000,0,, +ED50 / UTM zone 37N,23037,4230,16037,9807,0,39,0.9996,500000,0,, +ED50 / UTM zone 38N,23038,4230,16038,9807,0,45,0.9996,500000,0,, +ED50 / TM 0 N,23090,4230,16400,9807,0,0,0.9996,500000,0,, +ED50 / TM 5 NE,23095,4230,16405,9807,0,5,0.9996,500000,0,, +Fahud / UTM zone 39N,23239,4232,16039,9807,0,51,0.9996,500000,0,, +Fahud / UTM zone 40N,23240,4232,16040,9807,0,57,0.9996,500000,0,, +DGN95 / Indonesia TM-3 zone 46.2,23830,4755,17432,9807,0,94.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 47.1,23831,4755,17433,9807,0,97.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 47.2,23832,4755,17434,9807,0,100.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 48.1,23833,4755,17435,9807,0,103.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 48.2,23834,4755,17436,9807,0,106.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 49.1,23835,4755,17437,9807,0,109.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 49.2,23836,4755,17438,9807,0,112.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 50.1,23837,4755,17439,9807,0,115.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 50.2,23838,4755,17440,9807,0,118.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 51.1,23839,4755,17441,9807,0,121.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 51.2,23840,4755,17442,9807,0,124.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 52.1,23841,4755,17443,9807,0,127.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 52.2,23842,4755,17444,9807,0,130.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 53.1,23843,4755,17445,9807,0,133.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 53.2,23844,4755,17446,9807,0,136.5,0.9999,200000,1500000,, +DGN95 / Indonesia TM-3 zone 54.1,23845,4755,17447,9807,0,139.5,0.9999,200000,1500000,, +ID74 / UTM zone 46N,23846,4238,16046,9807,0,93,0.9996,500000,0,, +ID74 / UTM zone 47N,23847,4238,16047,9807,0,99,0.9996,500000,0,, +ID74 / UTM zone 48N,23848,4238,16048,9807,0,105,0.9996,500000,0,, +ID74 / UTM zone 49N,23849,4238,16049,9807,0,111,0.9996,500000,0,, +ID74 / UTM zone 50N,23850,4238,16050,9807,0,117,0.9996,500000,0,, +ID74 / UTM zone 51N,23851,4238,16051,9807,0,123,0.9996,500000,0,, +ID74 / UTM zone 52N,23852,4238,16052,9807,0,129,0.9996,500000,0,, +ID74 / UTM zone 53N,23853,4238,16053,9807,0,135,0.9996,500000,0,, +DGN95 / UTM zone 46N,23866,4755,16046,9807,0,93,0.9996,500000,0,, +DGN95 / UTM zone 47N,23867,4755,16047,9807,0,99,0.9996,500000,0,, +DGN95 / UTM zone 48N,23868,4755,16048,9807,0,105,0.9996,500000,0,, +DGN95 / UTM zone 49N,23869,4755,16049,9807,0,111,0.9996,500000,0,, +DGN95 / UTM zone 50N,23870,4755,16050,9807,0,117,0.9996,500000,0,, +DGN95 / UTM zone 51N,23871,4755,16051,9807,0,123,0.9996,500000,0,, +DGN95 / UTM zone 52N,23872,4755,16052,9807,0,129,0.9996,500000,0,, +DGN95 / UTM zone 47S,23877,4755,16147,9807,0,99,0.9996,500000,10000000,, +DGN95 / UTM zone 48S,23878,4755,16148,9807,0,105,0.9996,500000,10000000,, +DGN95 / UTM zone 49S,23879,4755,16149,9807,0,111,0.9996,500000,10000000,, +DGN95 / UTM zone 50S,23880,4755,16150,9807,0,117,0.9996,500000,10000000,, +DGN95 / UTM zone 51S,23881,4755,16151,9807,0,123,0.9996,500000,10000000,, +DGN95 / UTM zone 52S,23882,4755,16152,9807,0,129,0.9996,500000,10000000,, +DGN95 / UTM zone 53S,23883,4755,16153,9807,0,135,0.9996,500000,10000000,, +DGN95 / UTM zone 54S,23884,4755,16154,9807,0,141,0.9996,500000,10000000,, +ID74 / UTM zone 46S,23886,4238,16146,9807,0,93,0.9996,500000,10000000,, +ID74 / UTM zone 47S,23887,4238,16147,9807,0,99,0.9996,500000,10000000,, +ID74 / UTM zone 48S,23888,4238,16148,9807,0,105,0.9996,500000,10000000,, +ID74 / UTM zone 49S,23889,4238,16149,9807,0,111,0.9996,500000,10000000,, +ID74 / UTM zone 50S,23890,4238,16150,9807,0,117,0.9996,500000,10000000,, +ID74 / UTM zone 51S,23891,4238,16151,9807,0,123,0.9996,500000,10000000,, +ID74 / UTM zone 52S,23892,4238,16152,9807,0,129,0.9996,500000,10000000,, +ID74 / UTM zone 53S,23893,4238,16153,9807,0,135,0.9996,500000,10000000,, +ID74 / UTM zone 54S,23894,4238,16154,9807,0,141,0.9996,500000,10000000,, +Indian 1954 / UTM zone 46N,23946,4239,16046,9807,0,93,0.9996,500000,0,, +Indian 1954 / UTM zone 47N,23947,4239,16047,9807,0,99,0.9996,500000,0,, +Indian 1954 / UTM zone 48N,23948,4239,16048,9807,0,105,0.9996,500000,0,, +Indian 1975 / UTM zone 47N,24047,4240,16047,9807,0,99,0.9996,500000,0,, +Indian 1975 / UTM zone 48N,24048,4240,16048,9807,0,105,0.9996,500000,0,, +JAD69 / Jamaica National Grid,24200,4242,19910,9801,18,-77,1,250000,150000,, +Kalianpur 1937 / UTM zone 45N,24305,4144,16045,9807,0,87,0.9996,500000,0,, +Kalianpur 1937 / UTM zone 46N,24306,4144,16046,9807,0,93,0.9996,500000,0,, +Kalianpur 1962 / UTM zone 41N,24311,4145,16041,9807,0,63,0.9996,500000,0,, +Kalianpur 1962 / UTM zone 42N,24312,4145,16042,9807,0,69,0.9996,500000,0,, +Kalianpur 1962 / UTM zone 43N,24313,4145,16043,9807,0,75,0.9996,500000,0,, +Kalianpur 1975 / UTM zone 42N,24342,4146,16042,9807,0,69,0.9996,500000,0,, +Kalianpur 1975 / UTM zone 43N,24343,4146,16043,9807,0,75,0.9996,500000,0,, +Kalianpur 1975 / UTM zone 44N,24344,4146,16044,9807,0,81,0.9996,500000,0,, +Kalianpur 1975 / UTM zone 45N,24345,4146,16045,9807,0,87,0.9996,500000,0,, +Kalianpur 1975 / UTM zone 46N,24346,4146,16046,9807,0,93,0.9996,500000,0,, +Kalianpur 1975 / UTM zone 47N,24347,4146,16047,9807,0,99,0.9996,500000,0,, +Kalianpur 1937 / India zone IIb,24375,4144,18238,9801,26,90,0.99878641,2743185.69,914395.23,, +Kalianpur 1962 / India zone I,24376,4145,18236,9801,32.3,68,0.99878641,2743196.4,914398.8,, +Kalianpur 1962 / India zone IIa,24377,4145,18237,9801,26,74,0.99878641,2743196.4,914398.8,, +Kalianpur 1975 / India zone I,24378,4146,18231,9801,32.3,68,0.99878641,2743195.5,914398.5,, +Kalianpur 1975 / India zone IIa,24379,4146,18232,9801,26,74,0.99878641,2743195.5,914398.5,, +Kalianpur 1975 / India zone IIb,24380,4146,18235,9801,26,90,0.99878641,2743195.5,914398.5,, +Kalianpur 1975 / India zone IIIa,24381,4146,18233,9801,19,80,0.99878641,2743195.5,914398.5,, +Kalianpur 1975 / India zone IVa,24383,4146,18234,9801,12,80,0.99878641,2743195.5,914398.5,, +Kertau 1968 / UTM zone 47N,24547,4245,16047,9807,0,99,0.9996,500000,0,, +Kertau 1968 / UTM zone 48N,24548,4245,16048,9807,0,105,0.9996,500000,0,, +KOC Lambert,24600,4246,19906,9801,32.3,45,0.9987864078,1500000,1166200,, +La Canoa / UTM zone 18N,24718,4247,16018,9807,0,-75,0.9996,500000,0,, +La Canoa / UTM zone 19N,24719,4247,16019,9807,0,-69,0.9996,500000,0,, +La Canoa / UTM zone 20N,24720,4247,16020,9807,0,-63,0.9996,500000,0,, +PSAD56 / UTM zone 17N,24817,4248,16017,9807,0,-81,0.9996,500000,0,, +PSAD56 / UTM zone 18N,24818,4248,16018,9807,0,-75,0.9996,500000,0,, +PSAD56 / UTM zone 19N,24819,4248,16019,9807,0,-69,0.9996,500000,0,, +PSAD56 / UTM zone 20N,24820,4248,16020,9807,0,-63,0.9996,500000,0,, +PSAD56 / UTM zone 21N,24821,4248,16021,9807,0,-57,0.9996,500000,0,, +PSAD56 / UTM zone 17S,24877,4248,16117,9807,0,-81,0.9996,500000,10000000,, +PSAD56 / UTM zone 18S,24878,4248,16118,9807,0,-75,0.9996,500000,10000000,, +PSAD56 / UTM zone 19S,24879,4248,16119,9807,0,-69,0.9996,500000,10000000,, +PSAD56 / UTM zone 20S,24880,4248,16120,9807,0,-63,0.9996,500000,10000000,, +PSAD56 / UTM zone 21S,24881,4248,16121,9807,0,-57,0.9996,500000,10000000,, +PSAD56 / UTM zone 22S,24882,4248,16122,9807,0,-51,0.9996,500000,10000000,, +PSAD56 / Peru west zone,24891,4248,18161,9807,-6,-80.3,0.99983008,222000,1426834.743,, +PSAD56 / Peru central zone,24892,4248,18162,9807,-9.3,-76,0.99932994,720000,1039979.159,, +PSAD56 / Peru east zone,24893,4248,18163,9807,-9.3,-70.3,0.99952992,1324000,1040084.558,, +Leigon / Ghana Metre Grid,25000,4250,19904,9807,4.4,-1,0.99975,274319.51,0,, +Luzon 1911 / Philippines zone I,25391,4253,18171,9807,0,117,0.99995,500000,0,, +Luzon 1911 / Philippines zone II,25392,4253,18172,9807,0,119,0.99995,500000,0,, +Luzon 1911 / Philippines zone III,25393,4253,18173,9807,0,121,0.99995,500000,0,, +Luzon 1911 / Philippines zone IV,25394,4253,18174,9807,0,123,0.99995,500000,0,, +Luzon 1911 / Philippines zone V,25395,4253,18175,9807,0,125,0.99995,500000,0,, +ETRS89 / UTM zone 28N,25828,4258,16028,9807,0,-15,0.9996,500000,0,, +ETRS89 / UTM zone 29N,25829,4258,16029,9807,0,-9,0.9996,500000,0,, +ETRS89 / UTM zone 30N,25830,4258,16030,9807,0,-3,0.9996,500000,0,, +ETRS89 / UTM zone 31N,25831,4258,16031,9807,0,3,0.9996,500000,0,, +ETRS89 / UTM zone 32N,25832,4258,16032,9807,0,9,0.9996,500000,0,, +ETRS89 / UTM zone 33N,25833,4258,16033,9807,0,15,0.9996,500000,0,, +ETRS89 / UTM zone 34N,25834,4258,16034,9807,0,21,0.9996,500000,0,, +ETRS89 / UTM zone 35N,25835,4258,16035,9807,0,27,0.9996,500000,0,, +ETRS89 / UTM zone 36N,25836,4258,16036,9807,0,33,0.9996,500000,0,, +ETRS89 / UTM zone 37N,25837,4258,16037,9807,0,39,0.9996,500000,0,, +ETRS89 / UTM zone 38N,25838,4258,16038,9807,0,45,0.9996,500000,0,, +ETRS89 / TM Baltic93,25884,4258,19939,9807,0,24,0.9996,500000,0,, +Malongo 1987 / UTM zone 32S,25932,4259,16132,9807,0,9,0.9996,500000,10000000,, +Merchich / Nord Maroc,26191,4261,18131,9801,37,-6,0.999625769,500000,300000,, +Merchich / Sud Maroc,26192,4261,18132,9801,33,-6,0.999615596,500000,300000,, +Merchich / Sahara,26193,4261,18133,9801,29,-6,0.9996,1200000,400000,, +Merchich / Sahara Nord,26194,4261,18134,9801,29,-6,0.999616304,1200000,400000,, +Merchich / Sahara Sud,26195,4261,18135,9801,25,-6,0.999616437,1500000,400000,, +Massawa / UTM zone 37N,26237,4262,16037,9807,0,39,0.9996,500000,0,, +Minna / UTM zone 31N,26331,4263,16031,9807,0,3,0.9996,500000,0,, +Minna / UTM zone 32N,26332,4263,16032,9807,0,9,0.9996,500000,0,, +Minna / Nigeria West Belt,26391,4263,18151,9807,4,4.3,0.99975,230738.26,0,, +Minna / Nigeria Mid Belt,26392,4263,18152,9807,4,8.3,0.99975,670553.98,0,, +Minna / Nigeria East Belt,26393,4263,18153,9807,4,12.3,0.99975,1110369.7,0,, +Mhast / UTM zone 32S,26432,4264,16132,9807,0,9,0.9996,500000,10000000,, +Monte Mario (Rome) / Italy zone 1,26591,4806,18121,9807,0,9,0.9996,1500000,0,, +Monte Mario (Rome) / Italy zone 2,26592,4806,18122,9807,0,15,0.9996,2520000,0,, +M'poraloko / UTM zone 32N,26632,4266,16032,9807,0,9,0.9996,500000,0,, +M'poraloko / UTM zone 32S,26692,4266,16132,9807,0,9,0.9996,500000,10000000,, +NAD27 / UTM zone 1N,26701,4267,16001,9807,0,-177,0.9996,500000,0,, +NAD27 / UTM zone 2N,26702,4267,16002,9807,0,-171,0.9996,500000,0,, +NAD27 / UTM zone 3N,26703,4267,16003,9807,0,-165,0.9996,500000,0,, +NAD27 / UTM zone 4N,26704,4267,16004,9807,0,-159,0.9996,500000,0,, +NAD27 / UTM zone 5N,26705,4267,16005,9807,0,-153,0.9996,500000,0,, +NAD27 / UTM zone 6N,26706,4267,16006,9807,0,-147,0.9996,500000,0,, +NAD27 / UTM zone 7N,26707,4267,16007,9807,0,-141,0.9996,500000,0,, +NAD27 / UTM zone 8N,26708,4267,16008,9807,0,-135,0.9996,500000,0,, +NAD27 / UTM zone 9N,26709,4267,16009,9807,0,-129,0.9996,500000,0,, +NAD27 / UTM zone 10N,26710,4267,16010,9807,0,-123,0.9996,500000,0,, +NAD27 / UTM zone 11N,26711,4267,16011,9807,0,-117,0.9996,500000,0,, +NAD27 / UTM zone 12N,26712,4267,16012,9807,0,-111,0.9996,500000,0,, +NAD27 / UTM zone 13N,26713,4267,16013,9807,0,-105,0.9996,500000,0,, +NAD27 / UTM zone 14N,26714,4267,16014,9807,0,-99,0.9996,500000,0,, +NAD27 / UTM zone 15N,26715,4267,16015,9807,0,-93,0.9996,500000,0,, +NAD27 / UTM zone 16N,26716,4267,16016,9807,0,-87,0.9996,500000,0,, +NAD27 / UTM zone 17N,26717,4267,16017,9807,0,-81,0.9996,500000,0,, +NAD27 / UTM zone 18N,26718,4267,16018,9807,0,-75,0.9996,500000,0,, +NAD27 / UTM zone 19N,26719,4267,16019,9807,0,-69,0.9996,500000,0,, +NAD27 / UTM zone 20N,26720,4267,16020,9807,0,-63,0.9996,500000,0,, +NAD27 / UTM zone 21N,26721,4267,16021,9807,0,-57,0.9996,500000,0,, +NAD27 / UTM zone 22N,26722,4267,16022,9807,0,-51,0.9996,500000,0,, +NAD27 / Alabama East,26729,4267,10101,9807,30.3,-85.5,0.99996,500000,0,, +NAD27 / Alabama West,26730,4267,10102,9807,30,-87.3,0.999933333,500000,0,, +NAD27 / Alaska zone 2,26732,4267,15002,9807,54,-142,0.9999,500000,0,, +NAD27 / Alaska zone 3,26733,4267,15003,9807,54,-146,0.9999,500000,0,, +NAD27 / Alaska zone 4,26734,4267,15004,9807,54,-150,0.9999,500000,0,, +NAD27 / Alaska zone 5,26735,4267,15005,9807,54,-154,0.9999,500000,0,, +NAD27 / Alaska zone 6,26736,4267,15006,9807,54,-158,0.9999,500000,0,, +NAD27 / Alaska zone 7,26737,4267,15007,9807,54,-162,0.9999,700000,0,, +NAD27 / Alaska zone 8,26738,4267,15008,9807,54,-166,0.9999,500000,0,, +NAD27 / Alaska zone 9,26739,4267,15009,9807,54,-170,0.9999,600000,0,, +NAD27 / Alaska zone 10,26740,4267,15010,9802,51,-176,,3000000,0,53.5,51.5 +NAD27 / California zone I,26741,4267,10401,9802,39.2,-122,,2000000,0,41.4,40 +NAD27 / California zone II,26742,4267,10402,9802,37.4,-122,,2000000,0,39.5,38.2 +NAD27 / California zone III,26743,4267,10403,9802,36.3,-120.3,,2000000,0,38.26,37.04 +NAD27 / California zone IV,26744,4267,10404,9802,35.2,-119,,2000000,0,37.15,36 +NAD27 / California zone V,26745,4267,10405,9802,33.3,-118,,2000000,0,35.28,34.02 +NAD27 / California zone VI,26746,4267,10406,9802,32.1,-116.15,,2000000,0,33.53,32.47 +NAD27 / California zone VII,26747,4267,10407,9802,34.08,-118.2,,4186692.58,416926.74,34.25,33.52 +NAD27 / Arizona East,26748,4267,10201,9807,31,-110.1,0.9999,500000,0,, +NAD27 / Arizona Central,26749,4267,10202,9807,31,-111.55,0.9999,500000,0,, +NAD27 / Arizona West,26750,4267,10203,9807,31,-113.45,0.999933333,500000,0,, +NAD27 / Arkansas North,26751,4267,10301,9802,34.2,-92,,2000000,0,36.14,34.56 +NAD27 / Arkansas South,26752,4267,10302,9802,32.4,-92,,2000000,0,34.46,33.18 +NAD27 / Colorado North,26753,4267,10501,9802,39.2,-105.3,,2000000,0,39.43,40.47 +NAD27 / Colorado Central,26754,4267,10502,9802,37.5,-105.3,,2000000,0,39.45,38.27 +NAD27 / Colorado South,26755,4267,10503,9802,36.4,-105.3,,2000000,0,38.26,37.14 +NAD27 / Connecticut,26756,4267,10600,9802,40.5,-72.45,,600000,0,41.52,41.12 +NAD27 / Delaware,26757,4267,10700,9807,38,-75.25,0.999995,500000,0,, +NAD27 / Florida East,26758,4267,10901,9807,24.2,-81,0.999941177,500000,0,, +NAD27 / Florida West,26759,4267,10902,9807,24.2,-82,0.999941177,500000,0,, +NAD27 / Florida North,26760,4267,10903,9802,29,-84.3,,2000000,0,30.45,29.35 +NAD27 / Georgia East,26766,4267,11001,9807,30,-82.1,0.9999,500000,0,, +NAD27 / Georgia West,26767,4267,11002,9807,30,-84.1,0.9999,500000,0,, +NAD27 / Idaho East,26768,4267,11101,9807,41.4,-112.1,0.999947368,500000,0,, +NAD27 / Idaho Central,26769,4267,11102,9807,41.4,-114,0.999947368,500000,0,, +NAD27 / Idaho West,26770,4267,11103,9807,41.4,-115.45,0.999933333,500000,0,, +NAD27 / Illinois East,26771,4267,11201,9807,36.4,-88.2,0.999975,500000,0,, +NAD27 / Illinois West,26772,4267,11202,9807,36.4,-90.1,0.999941177,500000,0,, +NAD27 / Indiana East,26773,4267,11301,9807,37.3,-85.4,0.999966667,500000,0,, +NAD27 / Indiana West,26774,4267,11302,9807,37.3,-87.05,0.999966667,500000,0,, +NAD27 / Iowa North,26775,4267,11401,9802,41.3,-93.3,,2000000,0,43.16,42.04 +NAD27 / Iowa South,26776,4267,11402,9802,40,-93.3,,2000000,0,41.47,40.37 +NAD27 / Kansas North,26777,4267,11501,9802,38.2,-98,,2000000,0,39.47,38.43 +NAD27 / Kansas South,26778,4267,11502,9802,36.4,-98.3,,2000000,0,38.34,37.16 +NAD27 / Kentucky North,26779,4267,11601,9802,37.3,-84.15,,2000000,0,37.58,38.58 +NAD27 / Kentucky South,26780,4267,11602,9802,36.2,-85.45,,2000000,0,36.44,37.56 +NAD27 / Louisiana North,26781,4267,11701,9802,30.4,-92.3,,2000000,0,31.1,32.4 +NAD27 / Louisiana South,26782,4267,11702,9802,28.4,-91.2,,2000000,0,29.18,30.42 +NAD27 / Maine East,26783,4267,11801,9807,43.5,-68.3,0.9999,500000,0,, +NAD27 / Maine West,26784,4267,11802,9807,42.5,-70.1,0.999966667,500000,0,, +NAD27 / Maryland,26785,4267,11900,9802,37.5,-77,,800000,0,38.18,39.27 +NAD27 / Massachusetts Mainland,26786,4267,12001,9802,41,-71.3,,600000,0,41.43,42.41 +NAD27 / Massachusetts Island,26787,4267,12002,9802,41,-70.3,,200000,0,41.17,41.29 +NAD27 / Minnesota North,26791,4267,12201,9802,46.3,-93.06,,2000000,0,47.02,48.38 +NAD27 / Minnesota Central,26792,4267,12202,9802,45,-94.15,,2000000,0,45.37,47.03 +NAD27 / Minnesota South,26793,4267,12203,9802,43,-94,,2000000,0,43.47,45.13 +NAD27 / Mississippi East,26794,4267,12301,9807,29.4,-88.5,0.99996,500000,0,, +NAD27 / Mississippi West,26795,4267,12302,9807,30.3,-90.2,0.999941177,500000,0,, +NAD27 / Missouri East,26796,4267,12401,9807,35.5,-90.3,0.999933333,500000,0,, +NAD27 / Missouri Central,26797,4267,12402,9807,35.5,-92.3,0.999933333,500000,0,, +NAD27 / Missouri West,26798,4267,12403,9807,36.1,-94.3,0.999941177,500000,0,, +NAD27 / California zone VII,26799,4267,10408,9802,34.08,-118.2,,4186692.58,4160926.74,34.25,33.52 +NAD83 / Maine East (ftUS),26814,4269,11833,9807,43.4,-68.3,0.9999,984250,0,, +NAD83 / Maine West (ftUS),26815,4269,11834,9807,42.5,-70.1,0.999966667,2952750,0,, +NAD83 / Minnesota North (ftUS),26819,4269,12234,9802,46.3,-93.06,,2624666.6667,328083.3333,48.38,47.02 +NAD83 / Minnesota Central (ftUS),26820,4269,12235,9802,45,-94.15,,2624666.6667,328083.3333,47.03,45.37 +NAD83 / Minnesota South (ftUS),26821,4269,12236,9802,43,-94,,2624666.6667,328083.3333,45.13,43.47 +NAD83 / Nebraska (ftUS),26822,4269,15396,9802,39.5,-100,,1640416.6667,0,43,40 +NAD83 / West Virginia North (ftUS),26823,4269,14733,9802,38.3,-79.3,,1968500,0,40.15,39 +NAD83 / West Virginia South (ftUS),26824,4269,14734,9802,37,-81,,1968500,0,38.53,37.29 +NAD83(HARN) / Maine East (ftUS),26825,4152,11833,9807,43.4,-68.3,0.9999,984250,0,, +NAD83(HARN) / Maine West (ftUS),26826,4152,11834,9807,42.5,-70.1,0.999966667,2952750,0,, +NAD83(HARN) / Minnesota North (ftUS),26830,4152,12234,9802,46.3,-93.06,,2624666.6667,328083.3333,48.38,47.02 +NAD83(HARN) / Minnesota Central (ftUS),26831,4152,12235,9802,45,-94.15,,2624666.6667,328083.3333,47.03,45.37 +NAD83(HARN) / Minnesota South (ftUS),26832,4152,12236,9802,43,-94,,2624666.6667,328083.3333,45.13,43.47 +NAD83(HARN) / Nebraska (ftUS),26833,4152,15396,9802,39.5,-100,,1640416.6667,0,43,40 +NAD83(HARN) / West Virginia North (ftUS),26834,4152,14733,9802,38.3,-79.3,,1968500,0,40.15,39 +NAD83(HARN) / West Virginia South (ftUS),26835,4152,14734,9802,37,-81,,1968500,0,38.53,37.29 +NAD83(NSRS2007) / Maine East (ftUS),26836,4759,11833,9807,43.4,-68.3,0.9999,984250,0,, +NAD83(NSRS2007) / Maine West (ftUS),26837,4759,11834,9807,42.5,-70.1,0.999966667,2952750,0,, +NAD83(NSRS2007) / Minnesota North (ftUS),26841,4759,12234,9802,46.3,-93.06,,2624666.6667,328083.3333,48.38,47.02 +NAD83(NSRS2007) / Minnesota Central (ftUS),26842,4759,12235,9802,45,-94.15,,2624666.6667,328083.3333,47.03,45.37 +NAD83(NSRS2007) / Minnesota South (ftUS),26843,4759,12236,9802,43,-94,,2624666.6667,328083.3333,45.13,43.47 +NAD83(NSRS2007) / Nebraska (ftUS),26844,4759,15396,9802,39.5,-100,,1640416.6667,0,43,40 +NAD83(NSRS2007) / West Virginia North (ftUS),26845,4759,14733,9802,38.3,-79.3,,1968500,0,40.15,39 +NAD83(NSRS2007) / West Virginia South (ftUS),26846,4759,14734,9802,37,-81,,1968500,0,38.53,37.29 +NAD83 / Maine East (ftUS),26847,4269,11833,9807,43.4,-68.3,0.9999,984250,0,, +NAD83 / Maine West (ftUS),26848,4269,11834,9807,42.5,-70.1,0.999966667,2952750,0,, +NAD83 / Minnesota North (ftUS),26849,4269,12234,9802,46.3,-93.06,,2624666.6667,328083.3333,48.38,47.02 +NAD83 / Minnesota Central (ftUS),26850,4269,12235,9802,45,-94.15,,2624666.6667,328083.3333,47.03,45.37 +NAD83 / Minnesota South (ftUS),26851,4269,12236,9802,43,-94,,2624666.6667,328083.3333,45.13,43.47 +NAD83 / Nebraska (ftUS),26852,4269,15396,9802,39.5,-100,,1640416.6667,0,43,40 +NAD83 / West Virginia North (ftUS),26853,4269,14735,9802,38.3,-79.3,,1968500,0,40.15,39 +NAD83 / West Virginia South (ftUS),26854,4269,14736,9802,37,-81,,1968500,0,38.53,37.29 +NAD83(HARN) / Maine East (ftUS),26855,4152,11833,9807,43.4,-68.3,0.9999,984250,0,, +NAD83(HARN) / Maine West (ftUS),26856,4152,11834,9807,42.5,-70.1,0.999966667,2952750,0,, +NAD83(HARN) / Minnesota North (ftUS),26857,4152,12234,9802,46.3,-93.06,,2624666.6667,328083.3333,48.38,47.02 +NAD83(HARN) / Minnesota Central (ftUS),26858,4152,12235,9802,45,-94.15,,2624666.6667,328083.3333,47.03,45.37 +NAD83(HARN) / Minnesota South (ftUS),26859,4152,12236,9802,43,-94,,2624666.6667,328083.3333,45.13,43.47 +NAD83(HARN) / Nebraska (ftUS),26860,4152,15396,9802,39.5,-100,,1640416.6667,0,43,40 +NAD83(HARN) / West Virginia North (ftUS),26861,4152,14735,9802,38.3,-79.3,,1968500,0,40.15,39 +NAD83(HARN) / West Virginia South (ftUS),26862,4152,14736,9802,37,-81,,1968500,0,38.53,37.29 +NAD83(NSRS2007) / Maine East (ftUS),26863,4759,11833,9807,43.4,-68.3,0.9999,984250,0,, +NAD83(NSRS2007) / Maine West (ftUS),26864,4759,11834,9807,42.5,-70.1,0.999966667,2952750,0,, +NAD83(NSRS2007) / Minnesota North (ftUS),26865,4759,12234,9802,46.3,-93.06,,2624666.6667,328083.3333,48.38,47.02 +NAD83(NSRS2007) / Minnesota Central (ftUS),26866,4759,12235,9802,45,-94.15,,2624666.6667,328083.3333,47.03,45.37 +NAD83(NSRS2007) / Minnesota South (ftUS),26867,4759,12236,9802,43,-94,,2624666.6667,328083.3333,45.13,43.47 +NAD83(NSRS2007) / Nebraska (ftUS),26868,4759,15396,9802,39.5,-100,,1640416.6667,0,43,40 +NAD83(NSRS2007) / West Virginia North (ftUS),26869,4759,14735,9802,38.3,-79.3,,1968500,0,40.15,39 +NAD83(NSRS2007) / West Virginia South (ftUS),26870,4759,14736,9802,37,-81,,1968500,0,38.53,37.29 +NAD83(CSRS) / MTM zone 11,26891,4617,17711,9807,0,-82.3,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 12,26892,4617,17712,9807,0,-81,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 13,26893,4617,17713,9807,0,-84,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 14,26894,4617,17714,9807,0,-87,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 15,26895,4617,17715,9807,0,-90,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 16,26896,4617,17716,9807,0,-93,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 17,26897,4617,17717,9807,0,-96,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 1,26898,4617,17701,9807,0,-53,0.9999,304800,0,, +NAD83(CSRS) / MTM zone 2,26899,4617,17702,9807,0,-56,0.9999,304800,0,, +NAD83 / UTM zone 1N,26901,4269,16001,9807,0,-177,0.9996,500000,0,, +NAD83 / UTM zone 2N,26902,4269,16002,9807,0,-171,0.9996,500000,0,, +NAD83 / UTM zone 3N,26903,4269,16003,9807,0,-165,0.9996,500000,0,, +NAD83 / UTM zone 4N,26904,4269,16004,9807,0,-159,0.9996,500000,0,, +NAD83 / UTM zone 5N,26905,4269,16005,9807,0,-153,0.9996,500000,0,, +NAD83 / UTM zone 6N,26906,4269,16006,9807,0,-147,0.9996,500000,0,, +NAD83 / UTM zone 7N,26907,4269,16007,9807,0,-141,0.9996,500000,0,, +NAD83 / UTM zone 8N,26908,4269,16008,9807,0,-135,0.9996,500000,0,, +NAD83 / UTM zone 9N,26909,4269,16009,9807,0,-129,0.9996,500000,0,, +NAD83 / UTM zone 10N,26910,4269,16010,9807,0,-123,0.9996,500000,0,, +NAD83 / UTM zone 11N,26911,4269,16011,9807,0,-117,0.9996,500000,0,, +NAD83 / UTM zone 12N,26912,4269,16012,9807,0,-111,0.9996,500000,0,, +NAD83 / UTM zone 13N,26913,4269,16013,9807,0,-105,0.9996,500000,0,, +NAD83 / UTM zone 14N,26914,4269,16014,9807,0,-99,0.9996,500000,0,, +NAD83 / UTM zone 15N,26915,4269,16015,9807,0,-93,0.9996,500000,0,, +NAD83 / UTM zone 16N,26916,4269,16016,9807,0,-87,0.9996,500000,0,, +NAD83 / UTM zone 17N,26917,4269,16017,9807,0,-81,0.9996,500000,0,, +NAD83 / UTM zone 18N,26918,4269,16018,9807,0,-75,0.9996,500000,0,, +NAD83 / UTM zone 19N,26919,4269,16019,9807,0,-69,0.9996,500000,0,, +NAD83 / UTM zone 20N,26920,4269,16020,9807,0,-63,0.9996,500000,0,, +NAD83 / UTM zone 21N,26921,4269,16021,9807,0,-57,0.9996,500000,0,, +NAD83 / UTM zone 22N,26922,4269,16022,9807,0,-51,0.9996,500000,0,, +NAD83 / UTM zone 23N,26923,4269,16023,9807,0,-45,0.9996,500000,0,, +NAD83 / Alabama East,26929,4269,10131,9807,30.3,-85.5,0.99996,200000,0,, +NAD83 / Alabama West,26930,4269,10132,9807,30,-87.3,0.999933333,600000,0,, +NAD83 / Alaska zone 2,26932,4269,15032,9807,54,-142,0.9999,500000,0,, +NAD83 / Alaska zone 3,26933,4269,15033,9807,54,-146,0.9999,500000,0,, +NAD83 / Alaska zone 4,26934,4269,15034,9807,54,-150,0.9999,500000,0,, +NAD83 / Alaska zone 5,26935,4269,15035,9807,54,-154,0.9999,500000,0,, +NAD83 / Alaska zone 6,26936,4269,15036,9807,54,-158,0.9999,500000,0,, +NAD83 / Alaska zone 7,26937,4269,15037,9807,54,-162,0.9999,500000,0,, +NAD83 / Alaska zone 8,26938,4269,15038,9807,54,-166,0.9999,500000,0,, +NAD83 / Alaska zone 9,26939,4269,15039,9807,54,-170,0.9999,500000,0,, +NAD83 / Alaska zone 10,26940,4269,15040,9802,51,-176,,1000000,0,53.5,51.5 +NAD83 / California zone 1,26941,4269,10431,9802,39.2,-122,,2000000,500000,41.4,40 +NAD83 / California zone 2,26942,4269,10432,9802,37.4,-122,,2000000,500000,39.5,38.2 +NAD83 / California zone 3,26943,4269,10433,9802,36.3,-120.3,,2000000,500000,38.26,37.04 +NAD83 / California zone 4,26944,4269,10434,9802,35.2,-119,,2000000,500000,37.15,36 +NAD83 / California zone 5,26945,4269,10435,9802,33.3,-118,,2000000,500000,35.28,34.02 +NAD83 / California zone 6,26946,4269,10436,9802,32.1,-116.15,,2000000,500000,33.53,32.47 +NAD83 / Arizona East,26948,4269,10231,9807,31,-110.1,0.9999,213360,0,, +NAD83 / Arizona Central,26949,4269,10232,9807,31,-111.55,0.9999,213360,0,, +NAD83 / Arizona West,26950,4269,10233,9807,31,-113.45,0.999933333,213360,0,, +NAD83 / Arkansas North,26951,4269,10331,9802,34.2,-92,,400000,0,36.14,34.56 +NAD83 / Arkansas South,26952,4269,10332,9802,32.4,-92,,400000,400000,34.46,33.18 +NAD83 / Colorado North,26953,4269,10531,9802,39.2,-105.3,,914401.8289,304800.6096,40.47,39.43 +NAD83 / Colorado Central,26954,4269,10532,9802,37.5,-105.3,,914401.8289,304800.6096,39.45,38.27 +NAD83 / Colorado South,26955,4269,10533,9802,36.4,-105.3,,914401.8289,304800.6096,38.26,37.14 +NAD83 / Connecticut,26956,4269,10630,9802,40.5,-72.45,,304800.6096,152400.3048,41.52,41.12 +NAD83 / Delaware,26957,4269,10730,9807,38,-75.25,0.999995,200000,0,, +NAD83 / Florida East,26958,4269,10931,9807,24.2,-81,0.999941177,200000,0,, +NAD83 / Florida West,26959,4269,10932,9807,24.2,-82,0.999941177,200000,0,, +NAD83 / Florida North,26960,4269,10933,9802,29,-84.3,,600000,0,30.45,29.35 +NAD83 / Hawaii zone 1,26961,4269,15131,9807,18.5,-155.3,0.999966667,500000,0,, +NAD83 / Hawaii zone 2,26962,4269,15132,9807,20.2,-156.4,0.999966667,500000,0,, +NAD83 / Hawaii zone 3,26963,4269,15133,9807,21.1,-158,0.99999,500000,0,, +NAD83 / Hawaii zone 4,26964,4269,15134,9807,21.5,-159.3,0.99999,500000,0,, +NAD83 / Hawaii zone 5,26965,4269,15135,9807,21.4,-160.1,1,500000,0,, +NAD83 / Georgia East,26966,4269,11031,9807,30,-82.1,0.9999,200000,0,, +NAD83 / Georgia West,26967,4269,11032,9807,30,-84.1,0.9999,700000,0,, +NAD83 / Idaho East,26968,4269,11131,9807,41.4,-112.1,0.999947368,200000,0,, +NAD83 / Idaho Central,26969,4269,11132,9807,41.4,-114,0.999947368,500000,0,, +NAD83 / Idaho West,26970,4269,11133,9807,41.4,-115.45,0.999933333,800000,0,, +NAD83 / Illinois East,26971,4269,11231,9807,36.4,-88.2,0.999975,300000,0,, +NAD83 / Illinois West,26972,4269,11232,9807,36.4,-90.1,0.999941177,700000,0,, +NAD83 / Indiana East,26973,4269,11331,9807,37.3,-85.4,0.999966667,100000,250000,, +NAD83 / Indiana West,26974,4269,11332,9807,37.3,-87.05,0.999966667,900000,250000,, +NAD83 / Iowa North,26975,4269,11431,9802,41.3,-93.3,,1500000,1000000,43.16,42.04 +NAD83 / Iowa South,26976,4269,11432,9802,40,-93.3,,500000,0,41.47,40.37 +NAD83 / Kansas North,26977,4269,11531,9802,38.2,-98,,400000,0,39.47,38.43 +NAD83 / Kansas South,26978,4269,11532,9802,36.4,-98.3,,400000,400000,38.34,37.16 +NAD83 / Kentucky North,26979,4269,11631,9802,37.3,-84.15,,500000,0,37.58,37.58 +NAD83 / Kentucky South,26980,4269,11632,9802,36.2,-85.45,,500000,500000,37.56,36.44 +NAD83 / Louisiana North,26981,4269,11731,9802,30.3,-92.3,,1000000,0,32.4,31.1 +NAD83 / Louisiana South,26982,4269,11732,9802,28.3,-91.2,,1000000,0,30.42,29.18 +NAD83 / Maine East,26983,4269,11831,9807,43.4,-68.3,0.9999,300000,0,, +NAD83 / Maine West,26984,4269,11832,9807,42.5,-70.1,0.999966667,900000,0,, +NAD83 / Maryland,26985,4269,11930,9802,37.4,-77,,400000,0,39.27,38.18 +NAD83 / Massachusetts Mainland,26986,4269,12031,9802,41,-71.3,,200000,750000,42.41,41.43 +NAD83 / Massachusetts Island,26987,4269,12032,9802,41,-70.3,,500000,0,41.29,41.17 +NAD83 / Michigan North,26988,4269,12141,9802,44.47,-87,,8000000,0,47.05,45.29 +NAD83 / Michigan Central,26989,4269,12142,9802,43.19,-84.22,,6000000,0,45.42,44.11 +NAD83 / Michigan South,26990,4269,12143,9802,41.3,-84.22,,4000000,0,43.4,42.06 +NAD83 / Minnesota North,26991,4269,12231,9802,46.3,-93.06,,800000,100000,48.38,47.02 +NAD83 / Minnesota Central,26992,4269,12232,9802,45,-94.15,,800000,100000,47.03,45.37 +NAD83 / Minnesota South,26993,4269,12233,9802,43,-94,,800000,100000,45.13,43.47 +NAD83 / Mississippi East,26994,4269,12331,9807,29.3,-88.5,0.99995,300000,0,, +NAD83 / Mississippi West,26995,4269,12332,9807,29.3,-90.2,0.99995,700000,0,, +NAD83 / Missouri East,26996,4269,12431,9807,35.5,-90.3,0.999933333,250000,0,, +NAD83 / Missouri Central,26997,4269,12432,9807,35.5,-92.3,0.999933333,500000,0,, +NAD83 / Missouri West,26998,4269,12433,9807,36.1,-94.3,0.999941177,850000,0,, +Nahrwan 1967 / UTM zone 37N,27037,4270,16037,9807,0,39,0.9996,500000,0,, +Nahrwan 1967 / UTM zone 38N,27038,4270,16038,9807,0,45,0.9996,500000,0,, +Nahrwan 1967 / UTM zone 39N,27039,4270,16039,9807,0,51,0.9996,500000,0,, +Nahrwan 1967 / UTM zone 40N,27040,4270,16040,9807,0,57,0.9996,500000,0,, +Naparima 1972 / UTM zone 20N,27120,4271,16020,9807,0,-63,0.9996,500000,0,, +NZGD49 / Mount Eden Circuit,27205,4272,17901,9807,-36.5247515,174.45516217,0.9999,300000,700000,, +NZGD49 / Bay of Plenty Circuit,27206,4272,17902,9807,-37.45404993,176.27583101,1,300000,700000,, +NZGD49 / Poverty Bay Circuit,27207,4272,17903,9807,-38.372893,177.53082906,1,300000,700000,, +NZGD49 / Hawkes Bay Circuit,27208,4272,17904,9807,-39.39033455,176.40252499,1,300000,700000,, +NZGD49 / Taranaki Circuit,27209,4272,17905,9807,-39.08087299,174.13408423,1,300000,700000,, +NZGD49 / Tuhirangi Circuit,27210,4272,17906,9807,-39.30448934,175.38241325,1,300000,700000,, +NZGD49 / Wanganui Circuit,27211,4272,17907,9807,-40.14310097,175.29171586,1,300000,700000,, +NZGD49 / Wairarapa Circuit,27212,4272,17908,9807,-40.55319175,175.38504588,1,300000,700000,, +NZGD49 / Wellington Circuit,27213,4272,17909,9807,-41.18047507,174.46358432,1,300000,700000,, +NZGD49 / Collingwood Circuit,27214,4272,17910,9807,-40.42531326,172.40193674,1,300000,700000,, +NZGD49 / Nelson Circuit,27215,4272,17911,9807,-41.1628361,173.17575405,1,300000,700000,, +NZGD49 / Karamea Circuit,27216,4272,17912,9807,-41.17236815,172.06325015,1,300000,700000,, +NZGD49 / Buller Circuit,27217,4272,17913,9807,-41.48388903,171.34525362,1,300000,700000,, +NZGD49 / Grey Circuit,27218,4272,17914,9807,-42.20012994,171.32591767,1,300000,700000,, +NZGD49 / Amuri Circuit,27219,4272,17915,9807,-42.41208197,173.00364802,1,300000,700000,, +NZGD49 / Marlborough Circuit,27220,4272,17916,9807,-41.3240152,173.48074668,1,300000,700000,, +NZGD49 / Hokitika Circuit,27221,4272,17917,9807,-42.53107605,170.58479766,1,300000,700000,, +NZGD49 / Okarito Circuit,27222,4272,17918,9807,-43.06364613,170.1539333,1,300000,700000,, +NZGD49 / Jacksons Bay Circuit,27223,4272,17919,9807,-43.58400904,168.36225612,1,300000,700000,, +NZGD49 / Mount Pleasant Circuit,27224,4272,17920,9807,-43.35262953,172.43378969,1,300000,700000,, +NZGD49 / Gawler Circuit,27225,4272,17921,9807,-43.44553616,171.21386945,1,300000,700000,, +NZGD49 / Timaru Circuit,27226,4272,17922,9807,-44.24079933,171.0326103,1,300000,700000,, +NZGD49 / Lindis Peak Circuit,27227,4272,17923,9807,-44.44069647,169.28039183,1,300000,700000,, +NZGD49 / Mount Nicholas Circuit,27228,4272,17924,9807,-45.07584493,168.23551083,1,300000,700000,, +NZGD49 / Mount York Circuit,27229,4272,17925,9807,-45.33494142,167.44199024,1,300000,700000,, +NZGD49 / Observation Point Circuit,27230,4272,17926,9807,-45.48583078,170.37429426,1,300000,700000,, +NZGD49 / North Taieri Circuit,27231,4272,17927,9807,-45.51414481,170.16573208,0.99996,300000,700000,, +NZGD49 / Bluff Circuit,27232,4272,17928,9807,-46.36000346,168.20343392,1,300002.66,699999.58,, +NZGD49 / UTM zone 58S,27258,4272,16158,9807,0,165,0.9996,500000,10000000,, +NZGD49 / UTM zone 59S,27259,4272,16159,9807,0,171,0.9996,500000,10000000,, +NZGD49 / UTM zone 60S,27260,4272,16160,9807,0,177,0.9996,500000,10000000,, +NZGD49 / North Island Grid,27291,4272,18141,9807,-39,175.3,1,300000,400000,, +NZGD49 / South Island Grid,27292,4272,18142,9807,-44,171.3,1,500000,500000,, +NGO 1948 (Oslo) / NGO zone I,27391,4817,18221,9807,58,-4.4,1,0,0,, +NGO 1948 (Oslo) / NGO zone II,27392,4817,18222,9807,58,-2.2,1,0,0,, +NGO 1948 (Oslo) / NGO zone III,27393,4817,18223,9807,58,0,1,0,0,, +NGO 1948 (Oslo) / NGO zone IV,27394,4817,18224,9807,58,2.3,1,0,0,, +NGO 1948 (Oslo) / NGO zone V,27395,4817,18225,9807,58,6.1,1,0,0,, +NGO 1948 (Oslo) / NGO zone VI,27396,4817,18226,9807,58,10.1,1,0,0,, +NGO 1948 (Oslo) / NGO zone VII,27397,4817,18227,9807,58,14.1,1,0,0,, +NGO 1948 (Oslo) / NGO zone VIII,27398,4817,18228,9807,58,18.2,1,0,0,, +Datum 73 / UTM zone 29N,27429,4274,16029,9807,0,-9,0.9996,500000,0,, +Datum 73 / Modified Portuguese Grid,27492,4274,19974,9807,39.4,-8.0754862,1,180.598,-86.99,, +Datum 73 / Modified Portuguese Grid,27493,4274,19974,9807,39.4,-8.0754862,1,180.598,-86.99,, +NTF (Paris) / Lambert Nord France,27561,4807,18091,9801,55,0,0.999877341,600000,200000,, +NTF (Paris) / Lambert Centre France,27562,4807,18092,9801,52,0,0.99987742,600000,200000,, +NTF (Paris) / Lambert Sud France,27563,4807,18093,9801,49,0,0.999877499,600000,200000,, +NTF (Paris) / Lambert Corse,27564,4807,18094,9801,46.85,0,0.99994471,234.358,185861.369,, +NTF (Paris) / Lambert zone I,27571,4807,18081,9801,55,0,0.999877341,600000,1200000,, +NTF (Paris) / Lambert zone II,27572,4807,18082,9801,52,0,0.99987742,600000,2200000,, +NTF (Paris) / Lambert zone III,27573,4807,18083,9801,49,0,0.999877499,600000,3200000,, +NTF (Paris) / Lambert zone IV,27574,4807,18084,9801,46.85,0,0.99994471,234.358,4185861.369,, +NTF (Paris) / France I,27581,4807,18081,9801,55,0,0.999877341,600000,1200000,, +NTF (Paris) / France II,27582,4807,18082,9801,52,0,0.99987742,600000,2200000,, +NTF (Paris) / France III,27583,4807,18083,9801,49,0,0.999877499,600000,3200000,, +NTF (Paris) / France IV,27584,4807,18084,9801,46.85,0,0.99994471,234.358,4185861.369,, +NTF (Paris) / Nord France,27591,4807,18091,9801,55,0,0.999877341,600000,200000,, +NTF (Paris) / Centre France,27592,4807,18092,9801,52,0,0.99987742,600000,200000,, +NTF (Paris) / Sud France,27593,4807,18093,9801,49,0,0.999877499,600000,200000,, +NTF (Paris) / Corse,27594,4807,18094,9801,46.85,0,0.99994471,234.358,185861.369,, +OSGB 1936 / British National Grid,27700,4277,19916,9807,49,-2,0.9996012717,400000,-100000,, +Palestine 1923 / Palestine Belt,28192,4281,18202,9807,31.4402749,35.124349,1,170251.555,1126867.909,, +Pointe Noire / UTM zone 32S,28232,4282,16132,9807,0,9,0.9996,500000,10000000,, +GDA94 / MGA zone 48,28348,4283,17348,9807,0,105,0.9996,500000,10000000,, +GDA94 / MGA zone 49,28349,4283,17349,9807,0,111,0.9996,500000,10000000,, +GDA94 / MGA zone 50,28350,4283,17350,9807,0,117,0.9996,500000,10000000,, +GDA94 / MGA zone 51,28351,4283,17351,9807,0,123,0.9996,500000,10000000,, +GDA94 / MGA zone 52,28352,4283,17352,9807,0,129,0.9996,500000,10000000,, +GDA94 / MGA zone 53,28353,4283,17353,9807,0,135,0.9996,500000,10000000,, +GDA94 / MGA zone 54,28354,4283,17354,9807,0,141,0.9996,500000,10000000,, +GDA94 / MGA zone 55,28355,4283,17355,9807,0,147,0.9996,500000,10000000,, +GDA94 / MGA zone 56,28356,4283,17356,9807,0,153,0.9996,500000,10000000,, +GDA94 / MGA zone 57,28357,4283,17357,9807,0,159,0.9996,500000,10000000,, +GDA94 / MGA zone 58,28358,4283,17358,9807,0,165,0.9996,500000,10000000,, +Pulkovo 1942 / Gauss-Kruger zone 2,28402,4284,16202,9807,0,9,1,2500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 3,28403,4284,16203,9807,0,15,1,3500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 4,28404,4284,16204,9807,0,21,1,4500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 5,28405,4284,16205,9807,0,27,1,5500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 6,28406,4284,16206,9807,0,33,1,6500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 7,28407,4284,16207,9807,0,39,1,7500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 8,28408,4284,16208,9807,0,45,1,8500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 9,28409,4284,16209,9807,0,51,1,9500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 10,28410,4284,16210,9807,0,57,1,10500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 11,28411,4284,16211,9807,0,63,1,11500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 12,28412,4284,16212,9807,0,69,1,12500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 13,28413,4284,16213,9807,0,75,1,13500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 14,28414,4284,16214,9807,0,81,1,14500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 15,28415,4284,16215,9807,0,87,1,15500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 16,28416,4284,16216,9807,0,93,1,16500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 17,28417,4284,16217,9807,0,99,1,17500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 18,28418,4284,16218,9807,0,105,1,18500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 19,28419,4284,16219,9807,0,111,1,19500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 20,28420,4284,16220,9807,0,117,1,20500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 21,28421,4284,16221,9807,0,123,1,21500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 22,28422,4284,16222,9807,0,129,1,22500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 23,28423,4284,16223,9807,0,135,1,23500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 24,28424,4284,16224,9807,0,141,1,24500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 25,28425,4284,16225,9807,0,147,1,25500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 26,28426,4284,16226,9807,0,153,1,26500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 27,28427,4284,16227,9807,0,159,1,27500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 28,28428,4284,16228,9807,0,165,1,28500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 29,28429,4284,16229,9807,0,171,1,29500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 30,28430,4284,16230,9807,0,177,1,30500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 31,28431,4284,16231,9807,0,-177,1,31500000,0,, +Pulkovo 1942 / Gauss-Kruger zone 32,28432,4284,16232,9807,0,-171,1,32500000,0,, +Pulkovo 1942 / Gauss-Kruger 2N,28462,4284,16302,9807,0,9,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 3N,28463,4284,16303,9807,0,15,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 4N,28464,4284,16304,9807,0,21,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 5N,28465,4284,16305,9807,0,27,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 6N,28466,4284,16306,9807,0,33,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 7N,28467,4284,16307,9807,0,39,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 8N,28468,4284,16308,9807,0,45,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 9N,28469,4284,16309,9807,0,51,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 10N,28470,4284,16310,9807,0,57,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 11N,28471,4284,16311,9807,0,63,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 12N,28472,4284,16312,9807,0,69,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 13N,28473,4284,16313,9807,0,75,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 14N,28474,4284,16314,9807,0,81,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 15N,28475,4284,16315,9807,0,87,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 16N,28476,4284,16316,9807,0,93,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 17N,28477,4284,16317,9807,0,99,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 18N,28478,4284,16318,9807,0,105,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 19N,28479,4284,16319,9807,0,111,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 20N,28480,4284,16320,9807,0,117,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 21N,28481,4284,16321,9807,0,123,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 22N,28482,4284,16322,9807,0,129,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 23N,28483,4284,16323,9807,0,135,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 24N,28484,4284,16324,9807,0,141,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 25N,28485,4284,16325,9807,0,147,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 26N,28486,4284,16326,9807,0,153,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 27N,28487,4284,16327,9807,0,159,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 28N,28488,4284,16328,9807,0,165,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 29N,28489,4284,16329,9807,0,171,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 30N,28490,4284,16330,9807,0,177,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 31N,28491,4284,16331,9807,0,-177,1,500000,0,, +Pulkovo 1942 / Gauss-Kruger 32N,28492,4284,16332,9807,0,-171,1,500000,0,, +Qatar 1974 / Qatar National Grid,28600,4285,19919,9807,24.27,51.13,0.99999,200000,300000,, +SAD69 / UTM zone 18N,29118,4291,16018,9807,0,-75,0.9996,500000,0,, +SAD69 / UTM zone 19N,29119,4291,16019,9807,0,-69,0.9996,500000,0,, +SAD69 / UTM zone 20N,29120,4291,16020,9807,0,-63,0.9996,500000,0,, +SAD69 / UTM zone 21N,29121,4291,16021,9807,0,-57,0.9996,500000,0,, +SAD69 / UTM zone 22N,29122,4291,16022,9807,0,-51,0.9996,500000,0,, +SAD69 / UTM zone 18N,29168,4618,16018,9807,0,-75,0.9996,500000,0,, +SAD69 / UTM zone 19N,29169,4618,16019,9807,0,-69,0.9996,500000,0,, +SAD69 / UTM zone 20N,29170,4618,16020,9807,0,-63,0.9996,500000,0,, +SAD69 / UTM zone 21N,29171,4618,16021,9807,0,-57,0.9996,500000,0,, +SAD69 / UTM zone 22N,29172,4618,16022,9807,0,-51,0.9996,500000,0,, +SAD69 / UTM zone 17S,29177,4291,16117,9807,0,-81,0.9996,500000,10000000,, +SAD69 / UTM zone 18S,29178,4291,16118,9807,0,-75,0.9996,500000,10000000,, +SAD69 / UTM zone 19S,29179,4291,16119,9807,0,-69,0.9996,500000,10000000,, +SAD69 / UTM zone 20S,29180,4291,16120,9807,0,-63,0.9996,500000,10000000,, +SAD69 / UTM zone 21S,29181,4291,16121,9807,0,-57,0.9996,500000,10000000,, +SAD69 / UTM zone 22S,29182,4291,16122,9807,0,-51,0.9996,500000,10000000,, +SAD69 / UTM zone 23S,29183,4291,16123,9807,0,-45,0.9996,500000,10000000,, +SAD69 / UTM zone 24S,29184,4291,16124,9807,0,-39,0.9996,500000,10000000,, +SAD69 / UTM zone 25S,29185,4291,16125,9807,0,-33,0.9996,500000,10000000,, +SAD69 / UTM zone 17S,29187,4618,16117,9807,0,-81,0.9996,500000,10000000,, +SAD69 / UTM zone 18S,29188,4618,16118,9807,0,-75,0.9996,500000,10000000,, +SAD69 / UTM zone 19S,29189,4618,16119,9807,0,-69,0.9996,500000,10000000,, +SAD69 / UTM zone 20S,29190,4618,16120,9807,0,-63,0.9996,500000,10000000,, +SAD69 / UTM zone 21S,29191,4618,16121,9807,0,-57,0.9996,500000,10000000,, +SAD69 / UTM zone 22S,29192,4618,16122,9807,0,-51,0.9996,500000,10000000,, +SAD69 / UTM zone 23S,29193,4618,16123,9807,0,-45,0.9996,500000,10000000,, +SAD69 / UTM zone 24S,29194,4618,16124,9807,0,-39,0.9996,500000,10000000,, +SAD69 / UTM zone 25S,29195,4618,16125,9807,0,-33,0.9996,500000,10000000,, +Sapper Hill 1943 / UTM zone 20S,29220,4292,16120,9807,0,-63,0.9996,500000,10000000,, +Sapper Hill 1943 / UTM zone 21S,29221,4292,16121,9807,0,-57,0.9996,500000,10000000,, +Schwarzeck / UTM zone 33S,29333,4293,16133,9807,0,15,0.9996,500000,10000000,, +Tananarive / UTM zone 38S,29738,4297,16138,9807,0,45,0.9996,500000,10000000,, +Tananarive / UTM zone 39S,29739,4297,16139,9807,0,51,0.9996,500000,10000000,, +Timbalai 1948 / UTM zone 49N,29849,4298,16049,9807,0,111,0.9996,500000,0,, +Timbalai 1948 / UTM zone 50N,29850,4298,16050,9807,0,117,0.9996,500000,0,, +TM65 / Irish National Grid,29900,4299,19908,9807,53.3,-8,1.000035,200000,250000,, +TM65 / Irish Grid,29902,4299,19972,9807,53.3,-8,1.000035,200000,250000,, +Tokyo / Japan Plane Rectangular CS I,30161,4301,17801,9807,33,129.3,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS II,30162,4301,17802,9807,33,131,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS III,30163,4301,17803,9807,36,132.1,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS IV,30164,4301,17804,9807,33,133.3,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS V,30165,4301,17805,9807,36,134.2,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS VI,30166,4301,17806,9807,36,136,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS VII,30167,4301,17807,9807,36,137.1,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS VIII,30168,4301,17808,9807,36,138.3,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS IX,30169,4301,17809,9807,36,139.5,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS X,30170,4301,17810,9807,40,140.5,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XI,30171,4301,17811,9807,44,140.15,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XII,30172,4301,17812,9807,44,142.15,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XIII,30173,4301,17813,9807,44,144.15,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XIV,30174,4301,17814,9807,26,142,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XV,30175,4301,17815,9807,26,127.3,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XVI,30176,4301,17816,9807,26,124,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XVII,30177,4301,17817,9807,26,131,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XVIII,30178,4301,17818,9807,20,136,0.9999,0,0,, +Tokyo / Japan Plane Rectangular CS XIX,30179,4301,17819,9807,26,154,0.9999,0,0,, +Voirol 1875 / Nord Algerie (ancienne),30491,4304,18011,9801,40,3,0.999625544,500000,300000,, +Voirol 1875 / Sud Algerie (ancienne),30492,4304,18012,9801,37,3,0.999625769,500000,300000,, +Yoff / UTM zone 28N,31028,4310,16028,9807,0,-15,0.9996,500000,0,, +Zanderij / UTM zone 21N,31121,4311,16021,9807,0,-57,0.9996,500000,0,, +Zanderij / TM 54 NW,31154,4311,17054,9807,0,-54,0.9996,500000,0,, +Zanderij / Suriname Old TM,31170,4311,19954,9807,0,-55.41,0.9996,500000,0,, +Zanderij / Suriname TM,31171,4311,19955,9807,0,-55.41,0.9999,500000,0,, +MGI (Ferro) / Austria GK West Zone,31251,4805,18001,9807,0,28,1,0,-5000000,, +MGI (Ferro) / Austria GK Central Zone,31252,4805,18002,9807,0,31,1,0,-5000000,, +MGI (Ferro) / Austria GK East Zone,31253,4805,18003,9807,0,34,1,0,-5000000,, +MGI / Austria GK West,31254,4312,18004,9807,0,10.2,1,0,-5000000,, +MGI / Austria GK Central,31255,4312,18005,9807,0,13.2,1,0,-5000000,, +MGI / Austria GK East,31256,4312,18006,9807,0,16.2,1,0,-5000000,, +MGI / Austria GK M28,31257,4312,18007,9807,0,10.2,1,150000,-5000000,, +MGI / Austria GK M31,31258,4312,18008,9807,0,13.2,1,450000,-5000000,, +MGI / Austria GK M34,31259,4312,18009,9807,0,16.2,1,750000,-5000000,, +MGI / 3-degree Gauss zone 5,31265,4312,16265,9807,0,15,1,5500000,0,, +MGI / 3-degree Gauss zone 6,31266,4312,16266,9807,0,18,1,6500000,0,, +MGI / 3-degree Gauss zone 7,31267,4312,16267,9807,0,21,1,7500000,0,, +MGI / 3-degree Gauss zone 8,31268,4312,16268,9807,0,24,1,8500000,0,, +MGI / Balkans zone 5,31275,4312,18275,9807,0,15,0.9999,5500000,0,, +MGI / Balkans zone 6,31276,4312,18276,9807,0,18,0.9999,6500000,0,, +MGI / Balkans zone 7,31277,4312,18277,9807,0,21,0.9999,7500000,0,, +MGI / Balkans zone 8,31278,4312,18277,9807,0,21,0.9999,7500000,0,, +MGI / Balkans zone 8,31279,4312,18278,9807,0,24,0.9999,8500000,0,, +MGI (Ferro) / Austria West Zone,31281,4805,18041,9807,0,28,1,0,0,, +MGI (Ferro) / Austria Central Zone,31282,4805,18042,9807,0,31,1,0,0,, +MGI (Ferro) / Austria East Zone,31283,4805,18043,9807,0,34,1,0,0,, +MGI / Austria M28,31284,4312,18044,9807,0,10.2,1,150000,0,, +MGI / Austria M31,31285,4312,18045,9807,0,13.2,1,450000,0,, +MGI / Austria M34,31286,4312,18046,9807,0,16.2,1,750000,0,, +MGI / Austria Lambert,31287,4312,19947,9802,47.3,13.2,,400000,400000,49,46 +MGI (Ferro) / M28,31288,4805,18047,9807,0,28,1,150000,0,, +MGI (Ferro) / M31,31289,4805,18048,9807,0,31,1,450000,0,, +MGI (Ferro) / M34,31290,4805,18049,9807,0,34,1,750000,0,, +MGI (Ferro) / Austria West Zone,31291,4805,18041,9807,0,28,1,0,0,, +MGI (Ferro) / Austria Central Zone,31292,4805,18042,9807,0,31,1,0,0,, +MGI (Ferro) / Austria East Zone,31293,4805,18043,9807,0,34,1,0,0,, +MGI / M28,31294,4312,18044,9807,0,10.2,1,150000,0,, +MGI / M31,31295,4312,18045,9807,0,13.2,1,450000,0,, +MGI / M34,31296,4312,18046,9807,0,16.2,1,750000,0,, +MGI / Austria Lambert,31297,4312,19947,9802,47.3,13.2,,400000,400000,49,46 +DHDN / 3-degree Gauss zone 1,31461,4314,16261,9807,0,3,1,1500000,0,, +DHDN / 3-degree Gauss zone 2,31462,4314,16262,9807,0,6,1,2500000,0,, +DHDN / 3-degree Gauss zone 3,31463,4314,16263,9807,0,9,1,3500000,0,, +DHDN / 3-degree Gauss zone 4,31464,4314,16264,9807,0,12,1,4500000,0,, +DHDN / 3-degree Gauss zone 5,31465,4314,16265,9807,0,15,1,5500000,0,, +DHDN / 3-degree Gauss-Kruger zone 2,31466,4314,16262,9807,0,6,1,2500000,0,, +DHDN / 3-degree Gauss-Kruger zone 3,31467,4314,16263,9807,0,9,1,3500000,0,, +DHDN / 3-degree Gauss-Kruger zone 4,31468,4314,16264,9807,0,12,1,4500000,0,, +DHDN / 3-degree Gauss-Kruger zone 5,31469,4314,16265,9807,0,15,1,5500000,0,, +Conakry 1905 / UTM zone 28N,31528,4315,16028,9807,0,-15,0.9996,500000,0,, +Conakry 1905 / UTM zone 29N,31529,4315,16029,9807,0,-9,0.9996,500000,0,, +NGN / UTM zone 38N,31838,4318,16038,9807,0,45,0.9996,500000,0,, +NGN / UTM zone 39N,31839,4318,16039,9807,0,51,0.9996,500000,0,, +KUDAMS / KTM,31900,4319,19928,9807,0,48,0.9996,500000,0,, +KUDAMS / KTM,31901,4319,19997,9807,0,48,1,500000,0,, +SIRGAS 2000 / UTM zone 11N,31965,4674,16011,9807,0,-117,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 12N,31966,4674,16012,9807,0,-111,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 13N,31967,4674,16013,9807,0,-105,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 14N,31968,4674,16014,9807,0,-99,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 15N,31969,4674,16015,9807,0,-93,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 16N,31970,4674,16016,9807,0,-87,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 17N,31971,4674,16017,9807,0,-81,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 18N,31972,4674,16018,9807,0,-75,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 19N,31973,4674,16019,9807,0,-69,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 20N,31974,4674,16020,9807,0,-63,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 21N,31975,4674,16021,9807,0,-57,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 22N,31976,4674,16022,9807,0,-51,0.9996,500000,0,, +SIRGAS 2000 / UTM zone 17S,31977,4674,16117,9807,0,-81,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 18S,31978,4674,16118,9807,0,-75,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 19S,31979,4674,16119,9807,0,-69,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 20S,31980,4674,16120,9807,0,-63,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 21S,31981,4674,16121,9807,0,-57,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 22S,31982,4674,16122,9807,0,-51,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 23S,31983,4674,16123,9807,0,-45,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 24S,31984,4674,16124,9807,0,-39,0.9996,500000,10000000,, +SIRGAS 2000 / UTM zone 25S,31985,4674,16125,9807,0,-33,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 17N,31986,4170,16017,9807,0,-81,0.9996,500000,0,, +SIRGAS 1995 / UTM zone 18N,31987,4170,16018,9807,0,-75,0.9996,500000,0,, +SIRGAS 1995 / UTM zone 19N,31988,4170,16019,9807,0,-69,0.9996,500000,0,, +SIRGAS 1995 / UTM zone 20N,31989,4170,16020,9807,0,-63,0.9996,500000,0,, +SIRGAS 1995 / UTM zone 21N,31990,4170,16021,9807,0,-57,0.9996,500000,0,, +SIRGAS 1995 / UTM zone 22N,31991,4170,16022,9807,0,-51,0.9996,500000,0,, +SIRGAS 1995 / UTM zone 17S,31992,4170,16117,9807,0,-81,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 18S,31993,4170,16118,9807,0,-75,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 19S,31994,4170,16119,9807,0,-69,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 20S,31995,4170,16120,9807,0,-63,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 21S,31996,4170,16121,9807,0,-57,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 22S,31997,4170,16122,9807,0,-51,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 23S,31998,4170,16123,9807,0,-45,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 24S,31999,4170,16124,9807,0,-39,0.9996,500000,10000000,, +SIRGAS 1995 / UTM zone 25S,32000,4170,16125,9807,0,-33,0.9996,500000,10000000,, +NAD27 / Montana North,32001,4267,12501,9802,47,-109.3,,2000000,0,48.43,47.51 +NAD27 / Montana Central,32002,4267,12502,9802,45.5,-109.3,,2000000,0,47.53,46.27 +NAD27 / Montana South,32003,4267,12503,9802,44,-109.3,,2000000,0,46.24,44.52 +NAD27 / Nebraska North,32005,4267,12601,9802,41.2,-100,,2000000,0,41.51,42.49 +NAD27 / Nebraska South,32006,4267,12602,9802,39.4,-99.3,,2000000,0,40.17,41.43 +NAD27 / Nevada East,32007,4267,12701,9807,34.45,-115.35,0.9999,500000,0,, +NAD27 / Nevada Central,32008,4267,12702,9807,34.45,-116.4,0.9999,500000,0,, +NAD27 / Nevada West,32009,4267,12703,9807,34.45,-118.35,0.9999,500000,0,, +NAD27 / New Hampshire,32010,4267,12800,9807,42.3,-71.4,0.999966667,500000,0,, +NAD27 / New Jersey,32011,4267,12900,9807,38.5,-74.4,0.999975,2000000,0,, +NAD27 / New Mexico East,32012,4267,13001,9807,31,-104.2,0.999909091,500000,0,, +NAD27 / New Mexico Central,32013,4267,13002,9807,31,-106.15,0.9999,500000,0,, +NAD27 / New Mexico West,32014,4267,13003,9807,31,-107.5,0.999916667,500000,0,, +NAD27 / New York East,32015,4267,13101,9807,40,-74.2,0.999966667,500000,0,, +NAD27 / New York Central,32016,4267,13102,9807,40,-76.35,0.9999375,500000,0,, +NAD27 / New York West,32017,4267,13103,9807,40,-78.35,0.9999375,500000,0,, +NAD27 / New York Long Island,32018,4267,13104,9802,40.3,-74,,1000000,0,41.02,40.4 +NAD27 / North Carolina,32019,4267,13200,9802,33.45,-79,,2000000,0,34.2,36.1 +NAD27 / North Dakota North,32020,4267,13301,9802,47,-100.3,,2000000,0,47.26,48.44 +NAD27 / North Dakota South,32021,4267,13302,9802,45.4,-100.3,,2000000,0,46.11,47.29 +NAD27 / Ohio North,32022,4267,13401,9802,39.4,-82.3,,2000000,0,40.26,41.42 +NAD27 / Ohio South,32023,4267,13402,9802,38,-82.3,,2000000,0,38.44,40.02 +NAD27 / Oklahoma North,32024,4267,13501,9802,35,-98,,2000000,0,35.34,36.46 +NAD27 / Oklahoma South,32025,4267,13502,9802,33.2,-98,,2000000,0,33.56,35.14 +NAD27 / Oregon North,32026,4267,13601,9802,43.4,-120.3,,2000000,0,44.2,46 +NAD27 / Oregon South,32027,4267,13602,9802,41.4,-120.3,,2000000,0,42.2,44 +NAD27 / Pennsylvania North,32028,4267,13701,9802,40.1,-77.45,,2000000,0,40.53,41.57 +NAD27 / Pennsylvania South,32029,4267,13702,9802,39.2,-77.45,,2000000,0,39.56,40.48 +NAD27 / Rhode Island,32030,4267,13800,9807,41.05,-71.3,0.9999938,500000,0,, +NAD27 / South Carolina North,32031,4267,13901,9802,33,-81,,2000000,0,33.46,34.58 +NAD27 / South Carolina South,32033,4267,13902,9802,31.5,-81,,2000000,0,32.2,33.4 +NAD27 / South Dakota North,32034,4267,14001,9802,43.5,-100,,2000000,0,44.25,45.41 +NAD27 / South Dakota South,32035,4267,14002,9802,42.2,-100.2,,2000000,0,42.5,44.24 +NAD27 / Tennessee,32036,4267,14100,9802,34.4,-86,,100000,0,35.15,36.25 +NAD27 / Texas North,32037,4267,14201,9802,34,-101.3,,2000000,0,34.39,36.11 +NAD27 / Texas North Central,32038,4267,14202,9802,31.4,-97.3,,2000000,0,32.08,33.58 +NAD27 / Texas Central,32039,4267,14203,9802,29.4,-100.2,,2000000,0,30.07,31.53 +NAD27 / Texas South Central,32040,4267,14204,9802,27.5,-99,,2000000,0,28.23,30.17 +NAD27 / Texas South,32041,4267,14205,9802,25.4,-98.3,,2000000,0,26.1,27.5 +NAD27 / Utah North,32042,4267,14301,9802,40.2,-111.3,,2000000,0,40.43,41.47 +NAD27 / Utah Central,32043,4267,14302,9802,38.2,-111.3,,2000000,0,39.01,40.39 +NAD27 / Utah South,32044,4267,14303,9802,36.4,-111.3,,2000000,0,37.13,38.21 +NAD27 / Vermont,32045,4267,14400,9807,42.3,-72.3,0.999964286,500000,0,, +NAD27 / Virginia North,32046,4267,14501,9802,37.4,-78.3,,2000000,0,38.02,39.12 +NAD27 / Virginia South,32047,4267,14502,9802,36.2,-78.3,,2000000,0,36.46,37.58 +NAD27 / Washington North,32048,4267,14601,9802,47,-120.5,,2000000,0,47.3,48.44 +NAD27 / Washington South,32049,4267,14602,9802,45.2,-120.3,,2000000,0,45.5,47.2 +NAD27 / West Virginia North,32050,4267,14701,9802,38.3,-79.3,,2000000,0,39,40.15 +NAD27 / West Virginia South,32051,4267,14702,9802,37,-81,,2000000,0,37.29,38.53 +NAD27 / Wisconsin North,32052,4267,14801,9802,45.1,-90,,2000000,0,45.34,46.46 +NAD27 / Wisconsin Central,32053,4267,14802,9802,43.5,-90,,2000000,0,44.15,45.3 +NAD27 / Wisconsin South,32054,4267,14803,9802,42,-90,,2000000,0,42.44,44.04 +NAD27 / Wyoming East,32055,4267,14901,9807,40.4,-105.1,0.999941177,500000,0,, +NAD27 / Wyoming East Central,32056,4267,14902,9807,40.4,-107.2,0.999941177,500000,0,, +NAD27 / Wyoming West Central,32057,4267,14903,9807,40.4,-108.45,0.999941177,500000,0,, +NAD27 / Wyoming West,32058,4267,14904,9807,40.4,-110.05,0.999941177,500000,0,, +NAD27 / Guatemala Norte,32061,4267,18211,9801,16.49,-90.2,0.99992226,500000,292209.579,, +NAD27 / Guatemala Sur,32062,4267,18212,9801,14.54,-90.2,0.99989906,500000,325992.681,, +NAD27 / BLM 14N (ftUS),32064,4267,15914,9807,0,-99,0.9996,1640416.67,0,, +NAD27 / BLM 15N (ftUS),32065,4267,15915,9807,0,-93,0.9996,1640416.67,0,, +NAD27 / BLM 16N (ftUS),32066,4267,15916,9807,0,-87,0.9996,1640416.67,0,, +NAD27 / BLM 17N (ftUS),32067,4267,15917,9807,0,-81,0.9996,1640416.67,0,, +NAD27 / BLM 14N (feet),32074,4267,15914,9807,0,-99,0.9996,1640416.67,0,, +NAD27 / BLM 15N (feet),32075,4267,15915,9807,0,-93,0.9996,1640416.67,0,, +NAD27 / BLM 16N (feet),32076,4267,15916,9807,0,-87,0.9996,1640416.67,0,, +NAD27 / BLM 17N (feet),32077,4267,15917,9807,0,-81,0.9996,1640416.67,0,, +NAD27 / MTM zone 1,32081,4267,17701,9807,0,-53,0.9999,304800,0,, +NAD27 / MTM zone 2,32082,4267,17702,9807,0,-56,0.9999,304800,0,, +NAD27 / MTM zone 3,32083,4267,17703,9807,0,-58.3,0.9999,304800,0,, +NAD27 / MTM zone 4,32084,4267,17704,9807,0,-61.3,0.9999,304800,0,, +NAD27 / MTM zone 5,32085,4267,17705,9807,0,-64.3,0.9999,304800,0,, +NAD27 / MTM zone 6,32086,4267,17706,9807,0,-67.3,0.9999,304800,0,, +NAD27 / Quebec Lambert,32098,4267,19944,9802,44,-68.3,,0,0,60,46 +NAD27 / Louisiana Offshore,32099,4267,11703,9802,25.4,-91.2,,2000000,0,27.5,26.1 +NAD83 / Montana,32100,4269,12530,9802,44.15,-109.3,,600000,0,49,45 +NAD83 / Nebraska,32104,4269,12630,9802,39.5,-100,,500000,0,43,40 +NAD83 / Nevada East,32107,4269,12731,9807,34.45,-115.35,0.9999,200000,8000000,, +NAD83 / Nevada Central,32108,4269,12732,9807,34.45,-116.4,0.9999,500000,6000000,, +NAD83 / Nevada West,32109,4269,12733,9807,34.45,-118.35,0.9999,800000,4000000,, +NAD83 / New Hampshire,32110,4269,12830,9807,42.3,-71.4,0.999966667,300000,0,, +NAD83 / New Jersey,32111,4269,12930,9807,38.5,-74.3,0.9999,150000,0,, +NAD83 / New Mexico East,32112,4269,13031,9807,31,-104.2,0.999909091,165000,0,, +NAD83 / New Mexico Central,32113,4269,13032,9807,31,-106.15,0.9999,500000,0,, +NAD83 / New Mexico West,32114,4269,13033,9807,31,-107.5,0.999916667,830000,0,, +NAD83 / New York East,32115,4269,13131,9807,38.5,-74.3,0.9999,150000,0,, +NAD83 / New York Central,32116,4269,13132,9807,40,-76.35,0.9999375,250000,0,, +NAD83 / New York West,32117,4269,13133,9807,40,-78.35,0.9999375,350000,0,, +NAD83 / New York Long Island,32118,4269,13134,9802,40.1,-74,,300000,0,41.02,40.4 +NAD83 / North Carolina,32119,4269,13230,9802,33.45,-79,,609601.22,0,36.1,34.2 +NAD83 / North Dakota North,32120,4269,13331,9802,47,-100.3,,600000,0,48.44,47.26 +NAD83 / North Dakota South,32121,4269,13332,9802,45.4,-100.3,,600000,0,47.29,46.11 +NAD83 / Ohio North,32122,4269,13431,9802,39.4,-82.3,,600000,0,41.42,40.26 +NAD83 / Ohio South,32123,4269,13432,9802,38,-82.3,,600000,0,40.02,38.44 +NAD83 / Oklahoma North,32124,4269,13531,9802,35,-98,,600000,0,36.46,35.34 +NAD83 / Oklahoma South,32125,4269,13532,9802,33.2,-98,,600000,0,35.14,33.56 +NAD83 / Oregon North,32126,4269,13631,9802,43.4,-120.3,,2500000,0,46,44.2 +NAD83 / Oregon South,32127,4269,13632,9802,41.4,-120.3,,1500000,0,44,42.2 +NAD83 / Pennsylvania North,32128,4269,13731,9802,40.1,-77.45,,600000,0,41.57,40.53 +NAD83 / Pennsylvania South,32129,4269,13732,9802,39.2,-77.45,,600000,0,40.58,39.56 +NAD83 / Rhode Island,32130,4269,13830,9807,41.05,-71.3,0.99999375,100000,0,, +NAD83 / South Carolina,32133,4269,13930,9802,31.5,-81,,609600,0,34.5,32.3 +NAD83 / South Dakota North,32134,4269,14031,9802,43.5,-100,,600000,0,45.41,44.25 +NAD83 / South Dakota South,32135,4269,14032,9802,42.2,-100.2,,600000,0,44.24,42.5 +NAD83 / Tennessee,32136,4269,14130,9802,34.2,-86,,600000,0,36.25,35.15 +NAD83 / Texas North,32137,4269,14231,9802,34,-101.3,,200000,1000000,36.11,34.39 +NAD83 / Texas North Central,32138,4269,14232,9802,31.4,-98.3,,600000,2000000,33.58,32.08 +NAD83 / Texas Central,32139,4269,14233,9802,29.4,-100.2,,700000,3000000,31.53,30.07 +NAD83 / Texas South Central,32140,4269,14234,9802,27.5,-99,,600000,4000000,30.17,28.23 +NAD83 / Texas South,32141,4269,14235,9802,25.4,-98.3,,300000,5000000,27.5,26.1 +NAD83 / Utah North,32142,4269,14331,9802,40.2,-111.3,,500000,1000000,41.47,40.43 +NAD83 / Utah Central,32143,4269,14332,9802,38.2,-111.3,,500000,2000000,40.39,39.01 +NAD83 / Utah South,32144,4269,14333,9802,36.4,-111.3,,500000,3000000,38.21,37.13 +NAD83 / Vermont,32145,4269,14430,9807,42.3,-72.3,0.999964286,500000,0,, +NAD83 / Virginia North,32146,4269,14531,9802,37.4,-78.3,,3500000,2000000,39.12,38.02 +NAD83 / Virginia South,32147,4269,14532,9802,36.2,-78.3,,3500000,1000000,37.58,36.46 +NAD83 / Washington North,32148,4269,14631,9802,47,-120.5,,500000,0,48.44,47.3 +NAD83 / Washington South,32149,4269,14632,9802,45.2,-120.3,,500000,0,47.2,45.5 +NAD83 / West Virginia North,32150,4269,14731,9802,38.3,-79.3,,600000,0,40.15,39 +NAD83 / West Virginia South,32151,4269,14732,9802,37,-81,,600000,0,38.53,37.29 +NAD83 / Wisconsin North,32152,4269,14831,9802,45.1,-90,,600000,0,46.46,45.34 +NAD83 / Wisconsin Central,32153,4269,14832,9802,43.5,-90,,600000,0,45.3,44.15 +NAD83 / Wisconsin South,32154,4269,14833,9802,42,-90,,600000,0,44.04,42.44 +NAD83 / Wyoming East,32155,4269,14931,9807,40.3,-105.1,0.9999375,200000,0,, +NAD83 / Wyoming East Central,32156,4269,14932,9807,40.3,-107.2,0.9999375,400000,100000,, +NAD83 / Wyoming West Central,32157,4269,14933,9807,40.3,-108.45,0.9999375,600000,0,, +NAD83 / Wyoming West,32158,4269,14934,9807,40.3,-110.05,0.9999375,800000,100000,, +NAD83 / Puerto Rico & Virgin Is.,32161,4269,15230,9802,17.5,-66.26,,200000,200000,18.26,18.02 +NAD83 / BLM 14N (ftUS),32164,4269,15914,9807,0,-99,0.9996,1640416.67,0,, +NAD83 / BLM 15N (ftUS),32165,4269,15915,9807,0,-93,0.9996,1640416.67,0,, +NAD83 / BLM 16N (ftUS),32166,4269,15916,9807,0,-87,0.9996,1640416.67,0,, +NAD83 / BLM 17N (ftUS),32167,4269,15917,9807,0,-81,0.9996,1640416.67,0,, +NAD83 / SCoPQ zone 2,32180,4269,17700,9807,0,-55.3,0.9999,304800,0,, +NAD83 / MTM zone 1,32181,4269,17701,9807,0,-53,0.9999,304800,0,, +NAD83 / MTM zone 2,32182,4269,17702,9807,0,-56,0.9999,304800,0,, +NAD83 / MTM zone 3,32183,4269,17703,9807,0,-58.3,0.9999,304800,0,, +NAD83 / MTM zone 4,32184,4269,17704,9807,0,-61.3,0.9999,304800,0,, +NAD83 / MTM zone 5,32185,4269,17705,9807,0,-64.3,0.9999,304800,0,, +NAD83 / MTM zone 6,32186,4269,17706,9807,0,-67.3,0.9999,304800,0,, +NAD83 / MTM zone 7,32187,4269,17707,9807,0,-70.3,0.9999,304800,0,, +NAD83 / MTM zone 8,32188,4269,17708,9807,0,-73.3,0.9999,304800,0,, +NAD83 / MTM zone 9,32189,4269,17709,9807,0,-76.3,0.9999,304800,0,, +NAD83 / MTM zone 10,32190,4269,17710,9807,0,-79.3,0.9999,304800,0,, +NAD83 / MTM zone 11,32191,4269,17711,9807,0,-82.3,0.9999,304800,0,, +NAD83 / MTM zone 12,32192,4269,17712,9807,0,-81,0.9999,304800,0,, +NAD83 / MTM zone 13,32193,4269,17713,9807,0,-84,0.9999,304800,0,, +NAD83 / MTM zone 14,32194,4269,17714,9807,0,-87,0.9999,304800,0,, +NAD83 / MTM zone 15,32195,4269,17715,9807,0,-90,0.9999,304800,0,, +NAD83 / MTM zone 16,32196,4269,17716,9807,0,-93,0.9999,304800,0,, +NAD83 / MTM zone 17,32197,4269,17717,9807,0,-96,0.9999,304800,0,, +NAD83 / Quebec Lambert,32198,4269,19944,9802,44,-68.3,,0,0,60,46 +NAD83 / Louisiana Offshore,32199,4269,11733,9802,25.3,-91.2,,1000000,0,27.5,26.1 +WGS 72 / UTM zone 1N,32201,4322,16001,9807,0,-177,0.9996,500000,0,, +WGS 72 / UTM zone 2N,32202,4322,16002,9807,0,-171,0.9996,500000,0,, +WGS 72 / UTM zone 3N,32203,4322,16003,9807,0,-165,0.9996,500000,0,, +WGS 72 / UTM zone 4N,32204,4322,16004,9807,0,-159,0.9996,500000,0,, +WGS 72 / UTM zone 5N,32205,4322,16005,9807,0,-153,0.9996,500000,0,, +WGS 72 / UTM zone 6N,32206,4322,16006,9807,0,-147,0.9996,500000,0,, +WGS 72 / UTM zone 7N,32207,4322,16007,9807,0,-141,0.9996,500000,0,, +WGS 72 / UTM zone 8N,32208,4322,16008,9807,0,-135,0.9996,500000,0,, +WGS 72 / UTM zone 9N,32209,4322,16009,9807,0,-129,0.9996,500000,0,, +WGS 72 / UTM zone 10N,32210,4322,16010,9807,0,-123,0.9996,500000,0,, +WGS 72 / UTM zone 11N,32211,4322,16011,9807,0,-117,0.9996,500000,0,, +WGS 72 / UTM zone 12N,32212,4322,16012,9807,0,-111,0.9996,500000,0,, +WGS 72 / UTM zone 13N,32213,4322,16013,9807,0,-105,0.9996,500000,0,, +WGS 72 / UTM zone 14N,32214,4322,16014,9807,0,-99,0.9996,500000,0,, +WGS 72 / UTM zone 15N,32215,4322,16015,9807,0,-93,0.9996,500000,0,, +WGS 72 / UTM zone 16N,32216,4322,16016,9807,0,-87,0.9996,500000,0,, +WGS 72 / UTM zone 17N,32217,4322,16017,9807,0,-81,0.9996,500000,0,, +WGS 72 / UTM zone 18N,32218,4322,16018,9807,0,-75,0.9996,500000,0,, +WGS 72 / UTM zone 19N,32219,4322,16019,9807,0,-69,0.9996,500000,0,, +WGS 72 / UTM zone 20N,32220,4322,16020,9807,0,-63,0.9996,500000,0,, +WGS 72 / UTM zone 21N,32221,4322,16021,9807,0,-57,0.9996,500000,0,, +WGS 72 / UTM zone 22N,32222,4322,16022,9807,0,-51,0.9996,500000,0,, +WGS 72 / UTM zone 23N,32223,4322,16023,9807,0,-45,0.9996,500000,0,, +WGS 72 / UTM zone 24N,32224,4322,16024,9807,0,-39,0.9996,500000,0,, +WGS 72 / UTM zone 25N,32225,4322,16025,9807,0,-33,0.9996,500000,0,, +WGS 72 / UTM zone 26N,32226,4322,16026,9807,0,-27,0.9996,500000,0,, +WGS 72 / UTM zone 27N,32227,4322,16027,9807,0,-21,0.9996,500000,0,, +WGS 72 / UTM zone 28N,32228,4322,16028,9807,0,-15,0.9996,500000,0,, +WGS 72 / UTM zone 29N,32229,4322,16029,9807,0,-9,0.9996,500000,0,, +WGS 72 / UTM zone 30N,32230,4322,16030,9807,0,-3,0.9996,500000,0,, +WGS 72 / UTM zone 31N,32231,4322,16031,9807,0,3,0.9996,500000,0,, +WGS 72 / UTM zone 32N,32232,4322,16032,9807,0,9,0.9996,500000,0,, +WGS 72 / UTM zone 33N,32233,4322,16033,9807,0,15,0.9996,500000,0,, +WGS 72 / UTM zone 34N,32234,4322,16034,9807,0,21,0.9996,500000,0,, +WGS 72 / UTM zone 35N,32235,4322,16035,9807,0,27,0.9996,500000,0,, +WGS 72 / UTM zone 36N,32236,4322,16036,9807,0,33,0.9996,500000,0,, +WGS 72 / UTM zone 37N,32237,4322,16037,9807,0,39,0.9996,500000,0,, +WGS 72 / UTM zone 38N,32238,4322,16038,9807,0,45,0.9996,500000,0,, +WGS 72 / UTM zone 39N,32239,4322,16039,9807,0,51,0.9996,500000,0,, +WGS 72 / UTM zone 40N,32240,4322,16040,9807,0,57,0.9996,500000,0,, +WGS 72 / UTM zone 41N,32241,4322,16041,9807,0,63,0.9996,500000,0,, +WGS 72 / UTM zone 42N,32242,4322,16042,9807,0,69,0.9996,500000,0,, +WGS 72 / UTM zone 43N,32243,4322,16043,9807,0,75,0.9996,500000,0,, +WGS 72 / UTM zone 44N,32244,4322,16044,9807,0,81,0.9996,500000,0,, +WGS 72 / UTM zone 45N,32245,4322,16045,9807,0,87,0.9996,500000,0,, +WGS 72 / UTM zone 46N,32246,4322,16046,9807,0,93,0.9996,500000,0,, +WGS 72 / UTM zone 47N,32247,4322,16047,9807,0,99,0.9996,500000,0,, +WGS 72 / UTM zone 48N,32248,4322,16048,9807,0,105,0.9996,500000,0,, +WGS 72 / UTM zone 49N,32249,4322,16049,9807,0,111,0.9996,500000,0,, +WGS 72 / UTM zone 50N,32250,4322,16050,9807,0,117,0.9996,500000,0,, +WGS 72 / UTM zone 51N,32251,4322,16051,9807,0,123,0.9996,500000,0,, +WGS 72 / UTM zone 52N,32252,4322,16052,9807,0,129,0.9996,500000,0,, +WGS 72 / UTM zone 53N,32253,4322,16053,9807,0,135,0.9996,500000,0,, +WGS 72 / UTM zone 54N,32254,4322,16054,9807,0,141,0.9996,500000,0,, +WGS 72 / UTM zone 55N,32255,4322,16055,9807,0,147,0.9996,500000,0,, +WGS 72 / UTM zone 56N,32256,4322,16056,9807,0,153,0.9996,500000,0,, +WGS 72 / UTM zone 57N,32257,4322,16057,9807,0,159,0.9996,500000,0,, +WGS 72 / UTM zone 58N,32258,4322,16058,9807,0,165,0.9996,500000,0,, +WGS 72 / UTM zone 59N,32259,4322,16059,9807,0,171,0.9996,500000,0,, +WGS 72 / UTM zone 60N,32260,4322,16060,9807,0,177,0.9996,500000,0,, +WGS 72 / UTM zone 1S,32301,4322,16101,9807,0,-177,0.9996,500000,10000000,, +WGS 72 / UTM zone 2S,32302,4322,16102,9807,0,-171,0.9996,500000,10000000,, +WGS 72 / UTM zone 3S,32303,4322,16103,9807,0,-165,0.9996,500000,10000000,, +WGS 72 / UTM zone 4S,32304,4322,16104,9807,0,-159,0.9996,500000,10000000,, +WGS 72 / UTM zone 5S,32305,4322,16105,9807,0,-153,0.9996,500000,10000000,, +WGS 72 / UTM zone 6S,32306,4322,16106,9807,0,-147,0.9996,500000,10000000,, +WGS 72 / UTM zone 7S,32307,4322,16107,9807,0,-141,0.9996,500000,10000000,, +WGS 72 / UTM zone 8S,32308,4322,16108,9807,0,-135,0.9996,500000,10000000,, +WGS 72 / UTM zone 9S,32309,4322,16109,9807,0,-129,0.9996,500000,10000000,, +WGS 72 / UTM zone 10S,32310,4322,16110,9807,0,-123,0.9996,500000,10000000,, +WGS 72 / UTM zone 11S,32311,4322,16111,9807,0,-117,0.9996,500000,10000000,, +WGS 72 / UTM zone 12S,32312,4322,16112,9807,0,-111,0.9996,500000,10000000,, +WGS 72 / UTM zone 13S,32313,4322,16113,9807,0,-105,0.9996,500000,10000000,, +WGS 72 / UTM zone 14S,32314,4322,16114,9807,0,-99,0.9996,500000,10000000,, +WGS 72 / UTM zone 15S,32315,4322,16115,9807,0,-93,0.9996,500000,10000000,, +WGS 72 / UTM zone 16S,32316,4322,16116,9807,0,-87,0.9996,500000,10000000,, +WGS 72 / UTM zone 17S,32317,4322,16117,9807,0,-81,0.9996,500000,10000000,, +WGS 72 / UTM zone 18S,32318,4322,16118,9807,0,-75,0.9996,500000,10000000,, +WGS 72 / UTM zone 19S,32319,4322,16119,9807,0,-69,0.9996,500000,10000000,, +WGS 72 / UTM zone 20S,32320,4322,16120,9807,0,-63,0.9996,500000,10000000,, +WGS 72 / UTM zone 21S,32321,4322,16121,9807,0,-57,0.9996,500000,10000000,, +WGS 72 / UTM zone 22S,32322,4322,16122,9807,0,-51,0.9996,500000,10000000,, +WGS 72 / UTM zone 23S,32323,4322,16123,9807,0,-45,0.9996,500000,10000000,, +WGS 72 / UTM zone 24S,32324,4322,16124,9807,0,-39,0.9996,500000,10000000,, +WGS 72 / UTM zone 25S,32325,4322,16125,9807,0,-33,0.9996,500000,10000000,, +WGS 72 / UTM zone 26S,32326,4322,16126,9807,0,-27,0.9996,500000,10000000,, +WGS 72 / UTM zone 27S,32327,4322,16127,9807,0,-21,0.9996,500000,10000000,, +WGS 72 / UTM zone 28S,32328,4322,16128,9807,0,-15,0.9996,500000,10000000,, +WGS 72 / UTM zone 29S,32329,4322,16129,9807,0,-9,0.9996,500000,10000000,, +WGS 72 / UTM zone 30S,32330,4322,16130,9807,0,-3,0.9996,500000,10000000,, +WGS 72 / UTM zone 31S,32331,4322,16131,9807,0,3,0.9996,500000,10000000,, +WGS 72 / UTM zone 32S,32332,4322,16132,9807,0,9,0.9996,500000,10000000,, +WGS 72 / UTM zone 33S,32333,4322,16133,9807,0,15,0.9996,500000,10000000,, +WGS 72 / UTM zone 34S,32334,4322,16134,9807,0,21,0.9996,500000,10000000,, +WGS 72 / UTM zone 35S,32335,4322,16135,9807,0,27,0.9996,500000,10000000,, +WGS 72 / UTM zone 36S,32336,4322,16136,9807,0,33,0.9996,500000,10000000,, +WGS 72 / UTM zone 37S,32337,4322,16137,9807,0,39,0.9996,500000,10000000,, +WGS 72 / UTM zone 38S,32338,4322,16138,9807,0,45,0.9996,500000,10000000,, +WGS 72 / UTM zone 39S,32339,4322,16139,9807,0,51,0.9996,500000,10000000,, +WGS 72 / UTM zone 40S,32340,4322,16140,9807,0,57,0.9996,500000,10000000,, +WGS 72 / UTM zone 41S,32341,4322,16141,9807,0,63,0.9996,500000,10000000,, +WGS 72 / UTM zone 42S,32342,4322,16142,9807,0,69,0.9996,500000,10000000,, +WGS 72 / UTM zone 43S,32343,4322,16143,9807,0,75,0.9996,500000,10000000,, +WGS 72 / UTM zone 44S,32344,4322,16144,9807,0,81,0.9996,500000,10000000,, +WGS 72 / UTM zone 45S,32345,4322,16145,9807,0,87,0.9996,500000,10000000,, +WGS 72 / UTM zone 46S,32346,4322,16146,9807,0,93,0.9996,500000,10000000,, +WGS 72 / UTM zone 47S,32347,4322,16147,9807,0,99,0.9996,500000,10000000,, +WGS 72 / UTM zone 48S,32348,4322,16148,9807,0,105,0.9996,500000,10000000,, +WGS 72 / UTM zone 49S,32349,4322,16149,9807,0,111,0.9996,500000,10000000,, +WGS 72 / UTM zone 50S,32350,4322,16150,9807,0,117,0.9996,500000,10000000,, +WGS 72 / UTM zone 51S,32351,4322,16151,9807,0,123,0.9996,500000,10000000,, +WGS 72 / UTM zone 52S,32352,4322,16152,9807,0,129,0.9996,500000,10000000,, +WGS 72 / UTM zone 53S,32353,4322,16153,9807,0,135,0.9996,500000,10000000,, +WGS 72 / UTM zone 54S,32354,4322,16154,9807,0,141,0.9996,500000,10000000,, +WGS 72 / UTM zone 55S,32355,4322,16155,9807,0,147,0.9996,500000,10000000,, +WGS 72 / UTM zone 56S,32356,4322,16156,9807,0,153,0.9996,500000,10000000,, +WGS 72 / UTM zone 57S,32357,4322,16157,9807,0,159,0.9996,500000,10000000,, +WGS 72 / UTM zone 58S,32358,4322,16158,9807,0,165,0.9996,500000,10000000,, +WGS 72 / UTM zone 59S,32359,4322,16159,9807,0,171,0.9996,500000,10000000,, +WGS 72 / UTM zone 60S,32360,4322,16160,9807,0,177,0.9996,500000,10000000,, +WGS 84 / UTM zone 1N,32601,4326,16001,9807,0,-177,0.9996,500000,0,, +WGS 84 / UTM zone 2N,32602,4326,16002,9807,0,-171,0.9996,500000,0,, +WGS 84 / UTM zone 3N,32603,4326,16003,9807,0,-165,0.9996,500000,0,, +WGS 84 / UTM zone 4N,32604,4326,16004,9807,0,-159,0.9996,500000,0,, +WGS 84 / UTM zone 5N,32605,4326,16005,9807,0,-153,0.9996,500000,0,, +WGS 84 / UTM zone 6N,32606,4326,16006,9807,0,-147,0.9996,500000,0,, +WGS 84 / UTM zone 7N,32607,4326,16007,9807,0,-141,0.9996,500000,0,, +WGS 84 / UTM zone 8N,32608,4326,16008,9807,0,-135,0.9996,500000,0,, +WGS 84 / UTM zone 9N,32609,4326,16009,9807,0,-129,0.9996,500000,0,, +WGS 84 / UTM zone 10N,32610,4326,16010,9807,0,-123,0.9996,500000,0,, +WGS 84 / UTM zone 11N,32611,4326,16011,9807,0,-117,0.9996,500000,0,, +WGS 84 / UTM zone 12N,32612,4326,16012,9807,0,-111,0.9996,500000,0,, +WGS 84 / UTM zone 13N,32613,4326,16013,9807,0,-105,0.9996,500000,0,, +WGS 84 / UTM zone 14N,32614,4326,16014,9807,0,-99,0.9996,500000,0,, +WGS 84 / UTM zone 15N,32615,4326,16015,9807,0,-93,0.9996,500000,0,, +WGS 84 / UTM zone 16N,32616,4326,16016,9807,0,-87,0.9996,500000,0,, +WGS 84 / UTM zone 17N,32617,4326,16017,9807,0,-81,0.9996,500000,0,, +WGS 84 / UTM zone 18N,32618,4326,16018,9807,0,-75,0.9996,500000,0,, +WGS 84 / UTM zone 19N,32619,4326,16019,9807,0,-69,0.9996,500000,0,, +WGS 84 / UTM zone 20N,32620,4326,16020,9807,0,-63,0.9996,500000,0,, +WGS 84 / UTM zone 21N,32621,4326,16021,9807,0,-57,0.9996,500000,0,, +WGS 84 / UTM zone 22N,32622,4326,16022,9807,0,-51,0.9996,500000,0,, +WGS 84 / UTM zone 23N,32623,4326,16023,9807,0,-45,0.9996,500000,0,, +WGS 84 / UTM zone 24N,32624,4326,16024,9807,0,-39,0.9996,500000,0,, +WGS 84 / UTM zone 25N,32625,4326,16025,9807,0,-33,0.9996,500000,0,, +WGS 84 / UTM zone 26N,32626,4326,16026,9807,0,-27,0.9996,500000,0,, +WGS 84 / UTM zone 27N,32627,4326,16027,9807,0,-21,0.9996,500000,0,, +WGS 84 / UTM zone 28N,32628,4326,16028,9807,0,-15,0.9996,500000,0,, +WGS 84 / UTM zone 29N,32629,4326,16029,9807,0,-9,0.9996,500000,0,, +WGS 84 / UTM zone 30N,32630,4326,16030,9807,0,-3,0.9996,500000,0,, +WGS 84 / UTM zone 31N,32631,4326,16031,9807,0,3,0.9996,500000,0,, +WGS 84 / UTM zone 32N,32632,4326,16032,9807,0,9,0.9996,500000,0,, +WGS 84 / UTM zone 33N,32633,4326,16033,9807,0,15,0.9996,500000,0,, +WGS 84 / UTM zone 34N,32634,4326,16034,9807,0,21,0.9996,500000,0,, +WGS 84 / UTM zone 35N,32635,4326,16035,9807,0,27,0.9996,500000,0,, +WGS 84 / UTM zone 36N,32636,4326,16036,9807,0,33,0.9996,500000,0,, +WGS 84 / UTM zone 37N,32637,4326,16037,9807,0,39,0.9996,500000,0,, +WGS 84 / UTM zone 38N,32638,4326,16038,9807,0,45,0.9996,500000,0,, +WGS 84 / UTM zone 39N,32639,4326,16039,9807,0,51,0.9996,500000,0,, +WGS 84 / UTM zone 40N,32640,4326,16040,9807,0,57,0.9996,500000,0,, +WGS 84 / UTM zone 41N,32641,4326,16041,9807,0,63,0.9996,500000,0,, +WGS 84 / UTM zone 42N,32642,4326,16042,9807,0,69,0.9996,500000,0,, +WGS 84 / UTM zone 43N,32643,4326,16043,9807,0,75,0.9996,500000,0,, +WGS 84 / UTM zone 44N,32644,4326,16044,9807,0,81,0.9996,500000,0,, +WGS 84 / UTM zone 45N,32645,4326,16045,9807,0,87,0.9996,500000,0,, +WGS 84 / UTM zone 46N,32646,4326,16046,9807,0,93,0.9996,500000,0,, +WGS 84 / UTM zone 47N,32647,4326,16047,9807,0,99,0.9996,500000,0,, +WGS 84 / UTM zone 48N,32648,4326,16048,9807,0,105,0.9996,500000,0,, +WGS 84 / UTM zone 49N,32649,4326,16049,9807,0,111,0.9996,500000,0,, +WGS 84 / UTM zone 50N,32650,4326,16050,9807,0,117,0.9996,500000,0,, +WGS 84 / UTM zone 51N,32651,4326,16051,9807,0,123,0.9996,500000,0,, +WGS 84 / UTM zone 52N,32652,4326,16052,9807,0,129,0.9996,500000,0,, +WGS 84 / UTM zone 53N,32653,4326,16053,9807,0,135,0.9996,500000,0,, +WGS 84 / UTM zone 54N,32654,4326,16054,9807,0,141,0.9996,500000,0,, +WGS 84 / UTM zone 55N,32655,4326,16055,9807,0,147,0.9996,500000,0,, +WGS 84 / UTM zone 56N,32656,4326,16056,9807,0,153,0.9996,500000,0,, +WGS 84 / UTM zone 57N,32657,4326,16057,9807,0,159,0.9996,500000,0,, +WGS 84 / UTM zone 58N,32658,4326,16058,9807,0,165,0.9996,500000,0,, +WGS 84 / UTM zone 59N,32659,4326,16059,9807,0,171,0.9996,500000,0,, +WGS 84 / UTM zone 60N,32660,4326,16060,9807,0,177,0.9996,500000,0,, +WGS 84 / BLM 14N (ftUS),32664,4326,15914,9807,0,-99,0.9996,1640416.67,0,, +WGS 84 / BLM 15N (ftUS),32665,4326,15915,9807,0,-93,0.9996,1640416.67,0,, +WGS 84 / BLM 16N (ftUS),32666,4326,15916,9807,0,-87,0.9996,1640416.67,0,, +WGS 84 / BLM 17N (ftUS),32667,4326,15917,9807,0,-81,0.9996,1640416.67,0,, +WGS 84 / UTM zone 1S,32701,4326,16101,9807,0,-177,0.9996,500000,10000000,, +WGS 84 / UTM zone 2S,32702,4326,16102,9807,0,-171,0.9996,500000,10000000,, +WGS 84 / UTM zone 3S,32703,4326,16103,9807,0,-165,0.9996,500000,10000000,, +WGS 84 / UTM zone 4S,32704,4326,16104,9807,0,-159,0.9996,500000,10000000,, +WGS 84 / UTM zone 5S,32705,4326,16105,9807,0,-153,0.9996,500000,10000000,, +WGS 84 / UTM zone 6S,32706,4326,16106,9807,0,-147,0.9996,500000,10000000,, +WGS 84 / UTM zone 7S,32707,4326,16107,9807,0,-141,0.9996,500000,10000000,, +WGS 84 / UTM zone 8S,32708,4326,16108,9807,0,-135,0.9996,500000,10000000,, +WGS 84 / UTM zone 9S,32709,4326,16109,9807,0,-129,0.9996,500000,10000000,, +WGS 84 / UTM zone 10S,32710,4326,16110,9807,0,-123,0.9996,500000,10000000,, +WGS 84 / UTM zone 11S,32711,4326,16111,9807,0,-117,0.9996,500000,10000000,, +WGS 84 / UTM zone 12S,32712,4326,16112,9807,0,-111,0.9996,500000,10000000,, +WGS 84 / UTM zone 13S,32713,4326,16113,9807,0,-105,0.9996,500000,10000000,, +WGS 84 / UTM zone 14S,32714,4326,16114,9807,0,-99,0.9996,500000,10000000,, +WGS 84 / UTM zone 15S,32715,4326,16115,9807,0,-93,0.9996,500000,10000000,, +WGS 84 / UTM zone 16S,32716,4326,16116,9807,0,-87,0.9996,500000,10000000,, +WGS 84 / UTM zone 17S,32717,4326,16117,9807,0,-81,0.9996,500000,10000000,, +WGS 84 / UTM zone 18S,32718,4326,16118,9807,0,-75,0.9996,500000,10000000,, +WGS 84 / UTM zone 19S,32719,4326,16119,9807,0,-69,0.9996,500000,10000000,, +WGS 84 / UTM zone 20S,32720,4326,16120,9807,0,-63,0.9996,500000,10000000,, +WGS 84 / UTM zone 21S,32721,4326,16121,9807,0,-57,0.9996,500000,10000000,, +WGS 84 / UTM zone 22S,32722,4326,16122,9807,0,-51,0.9996,500000,10000000,, +WGS 84 / UTM zone 23S,32723,4326,16123,9807,0,-45,0.9996,500000,10000000,, +WGS 84 / UTM zone 24S,32724,4326,16124,9807,0,-39,0.9996,500000,10000000,, +WGS 84 / UTM zone 25S,32725,4326,16125,9807,0,-33,0.9996,500000,10000000,, +WGS 84 / UTM zone 26S,32726,4326,16126,9807,0,-27,0.9996,500000,10000000,, +WGS 84 / UTM zone 27S,32727,4326,16127,9807,0,-21,0.9996,500000,10000000,, +WGS 84 / UTM zone 28S,32728,4326,16128,9807,0,-15,0.9996,500000,10000000,, +WGS 84 / UTM zone 29S,32729,4326,16129,9807,0,-9,0.9996,500000,10000000,, +WGS 84 / UTM zone 30S,32730,4326,16130,9807,0,-3,0.9996,500000,10000000,, +WGS 84 / UTM zone 31S,32731,4326,16131,9807,0,3,0.9996,500000,10000000,, +WGS 84 / UTM zone 32S,32732,4326,16132,9807,0,9,0.9996,500000,10000000,, +WGS 84 / UTM zone 33S,32733,4326,16133,9807,0,15,0.9996,500000,10000000,, +WGS 84 / UTM zone 34S,32734,4326,16134,9807,0,21,0.9996,500000,10000000,, +WGS 84 / UTM zone 35S,32735,4326,16135,9807,0,27,0.9996,500000,10000000,, +WGS 84 / UTM zone 36S,32736,4326,16136,9807,0,33,0.9996,500000,10000000,, +WGS 84 / UTM zone 37S,32737,4326,16137,9807,0,39,0.9996,500000,10000000,, +WGS 84 / UTM zone 38S,32738,4326,16138,9807,0,45,0.9996,500000,10000000,, +WGS 84 / UTM zone 39S,32739,4326,16139,9807,0,51,0.9996,500000,10000000,, +WGS 84 / UTM zone 40S,32740,4326,16140,9807,0,57,0.9996,500000,10000000,, +WGS 84 / UTM zone 41S,32741,4326,16141,9807,0,63,0.9996,500000,10000000,, +WGS 84 / UTM zone 42S,32742,4326,16142,9807,0,69,0.9996,500000,10000000,, +WGS 84 / UTM zone 43S,32743,4326,16143,9807,0,75,0.9996,500000,10000000,, +WGS 84 / UTM zone 44S,32744,4326,16144,9807,0,81,0.9996,500000,10000000,, +WGS 84 / UTM zone 45S,32745,4326,16145,9807,0,87,0.9996,500000,10000000,, +WGS 84 / UTM zone 46S,32746,4326,16146,9807,0,93,0.9996,500000,10000000,, +WGS 84 / UTM zone 47S,32747,4326,16147,9807,0,99,0.9996,500000,10000000,, +WGS 84 / UTM zone 48S,32748,4326,16148,9807,0,105,0.9996,500000,10000000,, +WGS 84 / UTM zone 49S,32749,4326,16149,9807,0,111,0.9996,500000,10000000,, +WGS 84 / UTM zone 50S,32750,4326,16150,9807,0,117,0.9996,500000,10000000,, +WGS 84 / UTM zone 51S,32751,4326,16151,9807,0,123,0.9996,500000,10000000,, +WGS 84 / UTM zone 52S,32752,4326,16152,9807,0,129,0.9996,500000,10000000,, +WGS 84 / UTM zone 53S,32753,4326,16153,9807,0,135,0.9996,500000,10000000,, +WGS 84 / UTM zone 54S,32754,4326,16154,9807,0,141,0.9996,500000,10000000,, +WGS 84 / UTM zone 55S,32755,4326,16155,9807,0,147,0.9996,500000,10000000,, +WGS 84 / UTM zone 56S,32756,4326,16156,9807,0,153,0.9996,500000,10000000,, +WGS 84 / UTM zone 57S,32757,4326,16157,9807,0,159,0.9996,500000,10000000,, +WGS 84 / UTM zone 58S,32758,4326,16158,9807,0,165,0.9996,500000,10000000,, +WGS 84 / UTM zone 59S,32759,4326,16159,9807,0,171,0.9996,500000,10000000,, +WGS 84 / UTM zone 60S,32760,4326,16160,9807,0,177,0.9996,500000,10000000,, +WGS 84 / TM 36 SE,32766,4326,16636,9807,0,36,0.9996,500000,10000000,, diff --git a/src/GUI/app.cpp b/src/GUI/app.cpp index 8b6b478d..e50dde9c 100644 --- a/src/GUI/app.cpp +++ b/src/GUI/app.cpp @@ -8,6 +8,7 @@ #include "map/downloader.h" #include "map/ellipsoid.h" #include "map/datum.h" +#include "map/pcs.h" #include "opengl.h" #include "gui.h" #include "config.h" @@ -35,6 +36,7 @@ App::App(int &argc, char **argv) : QApplication(argc, argv), OnlineMap::setDownloader(new Downloader(this)); OPENGL_SET_SAMPLES(4); loadDatums(); + loadPCSs(); _gui = new GUI(); } @@ -107,3 +109,26 @@ void App::loadDatums() if (!ok) qWarning("Maps based on a datum different from WGS84 won't work."); } + +void App::loadPCSs() +{ + QString file; + + if (QFile::exists(USER_PCS_FILE)) + file = USER_PCS_FILE; + else if (QFile::exists(GLOBAL_PCS_FILE)) + file = GLOBAL_PCS_FILE; + else { + qWarning("No PCS file found."); + return; + } + + if (!PCS::loadList(file)) { + if (PCS::errorLine()) + qWarning("%s: parse error on line %d: %s", qPrintable(file), + PCS::errorLine(), qPrintable(PCS::errorString())); + else + qWarning("%s: %s", qPrintable(file), qPrintable( + Datum::errorString())); + } +} diff --git a/src/GUI/app.h b/src/GUI/app.h index f416a237..9166ff73 100644 --- a/src/GUI/app.h +++ b/src/GUI/app.h @@ -19,6 +19,7 @@ protected: private: void loadDatums(); + void loadPCSs(); int &_argc; char **_argv; diff --git a/src/config.h b/src/config.h index cb2296b4..bf67bea4 100644 --- a/src/config.h +++ b/src/config.h @@ -14,6 +14,7 @@ #define ELLIPSOID_FILE QString("ellipsoids.csv") #define DATUM_FILE QString("datums.csv") +#define PCS_FILE QString("pcs.csv") #define MAP_FILE QString("maps.txt") #define MAP_DIR QString("maps") #define POI_DIR QString("POI") @@ -32,11 +33,13 @@ #define USER_ELLIPSOID_FILE USER_DIR + QString("/") + ELLIPSOID_FILE #define USER_DATUM_FILE USER_DIR + QString("/") + DATUM_FILE +#define USER_PCS_FILE USER_DIR + QString("/") + PCS_FILE #define USER_MAP_DIR USER_DIR + QString("/") + MAP_DIR #define USER_MAP_FILE USER_DIR + QString("/") + MAP_FILE #define USER_POI_DIR USER_DIR + QString("/") + POI_DIR #define GLOBAL_ELLIPSOID_FILE GLOBAL_DIR + QString("/") + ELLIPSOID_FILE #define GLOBAL_DATUM_FILE GLOBAL_DIR + QString("/") + DATUM_FILE +#define GLOBAL_PCS_FILE GLOBAL_DIR + QString("/") + PCS_FILE #define GLOBAL_MAP_DIR GLOBAL_DIR + QString("/") + MAP_DIR #define GLOBAL_MAP_FILE GLOBAL_DIR + QString("/") + MAP_FILE #define GLOBAL_POI_DIR GLOBAL_DIR + QString("/") + POI_DIR diff --git a/src/data/csvparser.h b/src/data/csvparser.h index 9c840ae2..b7a0eb11 100644 --- a/src/data/csvparser.h +++ b/src/data/csvparser.h @@ -7,7 +7,6 @@ class CSVParser : public Parser { public: CSVParser() : _errorLine(0) {} - ~CSVParser() {} bool parse(QFile *file, QList &track, QList &routes, QList &waypoints); diff --git a/src/data/fitparser.h b/src/data/fitparser.h index 1344eb8c..dbf18c13 100644 --- a/src/data/fitparser.h +++ b/src/data/fitparser.h @@ -7,7 +7,6 @@ class FITParser : public Parser { public: FITParser(); - ~FITParser() {} bool parse(QFile *file, QList &tracks, QList &routes, QList &waypoints); diff --git a/src/data/gpxparser.h b/src/data/gpxparser.h index 883a2aa6..1abd55c0 100644 --- a/src/data/gpxparser.h +++ b/src/data/gpxparser.h @@ -8,8 +8,6 @@ class GPXParser : public Parser { public: - ~GPXParser() {} - bool parse(QFile *file, QList &tracks, QList &routes, QList &waypoints); QString errorString() const {return _reader.errorString();} diff --git a/src/data/igcparser.h b/src/data/igcparser.h index 2bc1c311..372e0170 100644 --- a/src/data/igcparser.h +++ b/src/data/igcparser.h @@ -10,7 +10,6 @@ class IGCParser : public Parser { public: IGCParser() : _errorLine(0) {} - ~IGCParser() {} bool parse(QFile *file, QList &tracks, QList &routes, QList &waypoints); diff --git a/src/data/kmlparser.h b/src/data/kmlparser.h index 6aa9785b..06c08e0e 100644 --- a/src/data/kmlparser.h +++ b/src/data/kmlparser.h @@ -8,8 +8,6 @@ class KMLParser : public Parser { public: - ~KMLParser() {} - bool parse(QFile *file, QList &tracks, QList &routes, QList &waypoints); QString errorString() const {return _reader.errorString();} diff --git a/src/data/nmeaparser.h b/src/data/nmeaparser.h index d931d521..7bb673d1 100644 --- a/src/data/nmeaparser.h +++ b/src/data/nmeaparser.h @@ -9,7 +9,6 @@ class NMEAParser : public Parser { public: NMEAParser() : _errorLine(0), _GGA(false) {} - ~NMEAParser() {} bool parse(QFile *file, QList &tracks, QList &routes, QList &waypoints); diff --git a/src/data/tcxparser.h b/src/data/tcxparser.h index e5b82d4c..fd23553f 100644 --- a/src/data/tcxparser.h +++ b/src/data/tcxparser.h @@ -8,8 +8,6 @@ class TCXParser : public Parser { public: - ~TCXParser() {} - bool parse(QFile *file, QList &tracks, QList &routes, QList &waypoints); QString errorString() const {return _reader.errorString();} diff --git a/src/map/datum.cpp b/src/map/datum.cpp index d17fef6f..c5a08c91 100644 --- a/src/map/datum.cpp +++ b/src/map/datum.cpp @@ -4,26 +4,103 @@ #include "datum.h" -static QMap WGS84() +class Datum::Entry { +public: + Entry(const QString &name, int epsg, const Datum &datum) + : _name(name), _epsg(epsg), _datum(datum) {} + + const QString &name() const {return _name;} + int epsg() const {return _epsg;} + const Datum &datum() const {return _datum;} + +private: + QString _name; + int _epsg; + Datum _datum; +}; + + +// Abridged Molodensky transformation +static Coordinates molodensky(const Coordinates &c, const Datum &from, + const Datum &to) { - QMap map; - map.insert("WGS 84", Datum(Ellipsoid(WGS84_RADIUS, WGS84_FLATTENING), - 0.0, 0.0, 0.0)); - return map; + double rlat = deg2rad(c.lat()); + double rlon = deg2rad(c.lon()); + + double slat = sin(rlat); + double clat = cos(rlat); + double slon = sin(rlon); + double clon = cos(rlon); + double ssqlat = slat * slat; + + double dx = from.dx() - to.dx(); + double dy = from.dy() - to.dy(); + double dz = from.dz() - to.dz(); + + double from_f = from.ellipsoid().flattening(); + double to_f = to.ellipsoid().flattening(); + double df = to_f - from_f; + double from_a = from.ellipsoid().radius(); + double to_a = to.ellipsoid().radius(); + double da = to_a - from_a; + double from_esq = from_f * (2.0 - from_f); + double adb = 1.0 / (1.0 - from_f); + double rn = from_a / sqrt(1 - from_esq * ssqlat); + double rm = from_a * (1 - from_esq) / pow((1 - from_esq * ssqlat), 1.5); + double from_h = 0.0; + + double dlat = (-dx * slat * clon - dy * slat * slon + dz * clat + da + * rn * from_esq * slat * clat / from_a + df * (rm * adb + rn / adb) * slat + * clat) / (rm + from_h); + + double dlon = (-dx * slon + dy * clon) / ((rn + from_h) * clat); + + return Coordinates(c.lon() + rad2deg(dlon), c.lat() + rad2deg(dlat)); } -QMap Datum::_datums = WGS84(); +QList Datum::_datums = WGS84(); QString Datum::_errorString; int Datum::_errorLine = 0; -Datum Datum::datum(const QString &name) +QList Datum::WGS84() { - QMap::const_iterator it = _datums.find(name); + QList list; + list.append(Datum::Entry("WGS 84", 4326, + Datum(Ellipsoid(WGS84_RADIUS, WGS84_FLATTENING), 0.0, 0.0, 0.0))); + return list; +} - if (it == _datums.end()) - return Datum(); +Datum::Datum(const Ellipsoid &ellipsoid, double dx, double dy, double dz) + : _ellipsoid(ellipsoid), _dx(dx), _dy(dy), _dz(dz) +{ + _WGS84 = (_ellipsoid.radius() == WGS84_RADIUS + && _ellipsoid.flattening() == WGS84_FLATTENING + && _dx == 0.0 && _dy == 0.0 && _dz == 0.0) + ? true : false; +} - return it.value(); +Datum::Datum(int id) +{ + for (int i = 0; i < _datums.size(); i++) { + if (_datums.at(i).epsg() == id) { + *this = _datums.at(i).datum(); + return; + } + } + + *this = Datum(); +} + +Datum::Datum(const QString &name) +{ + for (int i = 0; i < _datums.size(); i++) { + if (_datums.at(i).name() == name) { + *this = _datums.at(i).datum(); + return; + } + } + + *this = Datum(); } bool Datum::loadList(const QString &path) @@ -47,6 +124,15 @@ bool Datum::loadList(const QString &path) return false; } + QString f1 = list[1].trimmed(); + int id = 0; + if (!f1.isEmpty()) { + id = f1.toInt(&res); + if (!res) { + _errorString = "Invalid datum id"; + return false; + } + } int eid = list[2].trimmed().toInt(&res); if (!res) { _errorString = "Invalid ellipsoid id"; @@ -68,14 +154,14 @@ bool Datum::loadList(const QString &path) return false; } - Ellipsoid e = Ellipsoid::ellipsoid(eid); + Ellipsoid e(eid); if (e.isNull()) { _errorString = "Unknown ellipsoid ID"; return false; } Datum d(e, dx, dy, dz); - _datums.insert(list[0].trimmed(), d); + _datums.append(Entry(list[0].trimmed(), id, d)); _errorLine++; } @@ -83,38 +169,21 @@ bool Datum::loadList(const QString &path) return true; } -// Abridged Molodensky transformation Coordinates Datum::toWGS84(const Coordinates &c) const { - if (_ellipsoid.radius() == WGS84_RADIUS - && _ellipsoid.flattening() == WGS84_FLATTENING - && _dx == 0.0 && _dy == 0.0 && _dz == 0.0) - return c; - - double rlat = deg2rad(c.lat()); - double rlon = deg2rad(c.lon()); - - double slat = sin(rlat); - double clat = cos(rlat); - double slon = sin(rlon); - double clon = cos(rlon); - double ssqlat = slat * slat; - - double from_f = ellipsoid().flattening(); - double df = WGS84_FLATTENING - from_f; - double from_a = ellipsoid().radius(); - double da = WGS84_RADIUS - from_a; - double from_esq = ellipsoid().flattening() - * (2.0 - ellipsoid().flattening()); - double adb = 1.0 / (1.0 - from_f); - double rn = from_a / sqrt(1 - from_esq * ssqlat); - double rm = from_a * (1 - from_esq) / pow((1 - from_esq * ssqlat), 1.5); - double from_h = 0.0; - - double dlat = (-dx() * slat * clon - dy() * slat * slon + dz() * clat + da - * rn * from_esq * slat * clat / from_a + df * (rm * adb + rn / adb) * slat - * clat) / (rm + from_h); - double dlon = (-dx() * slon + dy() * clon) / ((rn + from_h) * clat); - - return Coordinates(c.lon() + rad2deg(dlon), c.lat() + rad2deg(dlat)); + return _WGS84 ? c : molodensky(c, *this, Datum(Ellipsoid(WGS84_RADIUS, + WGS84_FLATTENING), 0.0, 0.0, 0.0)); +} + +Coordinates Datum::fromWGS84(const Coordinates &c) const +{ + return _WGS84 ? c : molodensky(c, Datum(Ellipsoid(WGS84_RADIUS, + WGS84_FLATTENING), 0.0, 0.0, 0.0), *this); +} + +QDebug operator<<(QDebug dbg, const Datum &datum) +{ + dbg.nospace() << "Datum(" << datum.ellipsoid() << ", " << datum.dx() << ", " + << datum.dy() << ", " << datum.dz() << ")"; + return dbg.space(); } diff --git a/src/map/datum.h b/src/map/datum.h index 7c801bfd..08a494e5 100644 --- a/src/map/datum.h +++ b/src/map/datum.h @@ -1,16 +1,20 @@ #ifndef DATUM_H #define DATUM_H -#include +#include +#include +#include #include "ellipsoid.h" #include "common/coordinates.h" class Datum { public: - Datum() : _ellipsoid(Ellipsoid()), _dx(0.0), _dy(0.0), _dz(0.0) {} - Datum(const Ellipsoid &ellipsoid, double dx, double dy, double dz) - : _ellipsoid(ellipsoid), _dx(dx), _dy(dy), _dz(dz) {} + Datum() : _ellipsoid(Ellipsoid()), _dx(NAN), _dy(NAN), _dz(NAN), + _WGS84(false) {} + Datum(const Ellipsoid &ellipsoid, double dx, double dy, double dz); + Datum(const QString &name); + Datum(int id); const Ellipsoid &ellipsoid() const {return _ellipsoid;} double dx() const {return _dx;} @@ -18,23 +22,30 @@ public: double dz() const {return _dz;} bool isNull() const - {return (_ellipsoid.isNull() && _dx == 0.0 && _dy == 0.0 && _dz == 0.0);} + {return (_ellipsoid.isNull() && std::isnan(_dx) && std::isnan(_dy) + && std::isnan(_dz));} Coordinates toWGS84(const Coordinates &c) const; + Coordinates fromWGS84(const Coordinates &c) const; static bool loadList(const QString &path); static const QString &errorString() {return _errorString;} static int errorLine() {return _errorLine;} - static Datum datum(const QString &name); - private: + class Entry; + + static QList WGS84(); + Ellipsoid _ellipsoid; double _dx, _dy, _dz; + bool _WGS84; - static QMap _datums; + static QList _datums; static QString _errorString; static int _errorLine; }; +QDebug operator<<(QDebug dbg, const Datum &datum); + #endif // DATUM_H diff --git a/src/map/ellipsoid.cpp b/src/map/ellipsoid.cpp index 844803d7..5ff094a9 100644 --- a/src/map/ellipsoid.cpp +++ b/src/map/ellipsoid.cpp @@ -1,18 +1,19 @@ #include +#include #include "ellipsoid.h" QMap Ellipsoid::_ellipsoids; QString Ellipsoid::_errorString; int Ellipsoid::_errorLine = 0; -Ellipsoid Ellipsoid::ellipsoid(int id) +Ellipsoid::Ellipsoid(int id) { QMap::const_iterator it = _ellipsoids.find(id); if (it == _ellipsoids.end()) - return Ellipsoid(); - - return it.value(); + *this = Ellipsoid(); + else + *this = it.value(); } bool Ellipsoid::loadList(const QString &path) @@ -20,6 +21,7 @@ bool Ellipsoid::loadList(const QString &path) QFile file(path); bool res; + if (!file.open(QFile::ReadOnly)) { _errorString = qPrintable(file.errorString()); return false; @@ -36,7 +38,7 @@ bool Ellipsoid::loadList(const QString &path) return false; } - int id = list[0].trimmed().toInt(&res); + int id = list[1].trimmed().toInt(&res); if (!res) { _errorString = "Invalid ellipsoid id"; return false; @@ -60,3 +62,10 @@ bool Ellipsoid::loadList(const QString &path) return true; } + +QDebug operator<<(QDebug dbg, const Ellipsoid &ellipsoid) +{ + dbg.nospace() << "Ellipsoid(" << ellipsoid.radius() << ", " + << 1.0 / ellipsoid.flattening() << ")"; + return dbg.space(); +} diff --git a/src/map/ellipsoid.h b/src/map/ellipsoid.h index cb6f0baa..6db94f68 100644 --- a/src/map/ellipsoid.h +++ b/src/map/ellipsoid.h @@ -1,27 +1,29 @@ #ifndef ELLIPSOID_H #define ELLIPSOID_H +#include #include #include +#include class Ellipsoid { public: - Ellipsoid() : _radius(0.0), _flattening(0.0) {} + Ellipsoid() : _radius(NAN), _flattening(NAN) {} Ellipsoid(double radius, double flattening) : _radius(radius), _flattening(flattening) {} + Ellipsoid(int id); double radius() const {return _radius;} double flattening() const {return _flattening;} - bool isNull() const {return (_radius == 0.0 && _flattening == 0.0);} + bool isNull() const + {return (std::isnan(_radius) && std::isnan(_flattening));} static bool loadList(const QString &path); static const QString &errorString() {return _errorString;} static int errorLine() {return _errorLine;} - static Ellipsoid ellipsoid(int id); - private: double _radius; double _flattening; @@ -31,4 +33,6 @@ private: static int _errorLine; }; +QDebug operator<<(QDebug dbg, const Ellipsoid &ellipsoid); + #endif // ELLIPSOID_H diff --git a/src/map/geotiff.cpp b/src/map/geotiff.cpp new file mode 100644 index 00000000..8c2acd09 --- /dev/null +++ b/src/map/geotiff.cpp @@ -0,0 +1,457 @@ +#include +#include +#include "pcs.h" +#include "latlon.h" +#include "geotiff.h" + + +#define TIFF_DOUBLE 12 +#define TIFF_SHORT 3 +#define TIFF_LONG 4 + +#define ModelPixelScaleTag 33550 +#define ModelTiepointTag 33922 +#define ModelTransformationTag 34264 +#define GeoKeyDirectoryTag 34735 +#define GeoDoubleParamsTag 34736 +#define ImageWidth 256 +#define ImageHeight 257 + +#define GTModelTypeGeoKey 1024 +#define GTRasterTypeGeoKey 1025 +#define GeographicTypeGeoKey 2048 +#define GeogGeodeticDatumGeoKey 2050 +#define GeogEllipsoidGeoKey 2056 +#define ProjectedCSTypeGeoKey 3072 +#define ProjectionGeoKey 3074 +#define ProjCoordTransGeoKey 3075 +#define ProjStdParallel1GeoKey 3078 +#define ProjStdParallel2GeoKey 3079 +#define ProjNatOriginLongGeoKey 3080 +#define ProjNatOriginLatGeoKey 3081 +#define ProjFalseEastingGeoKey 3082 +#define ProjFalseNorthingGeoKey 3083 +#define ProjScaleAtNatOriginGeoKey 3092 + +#define ModelTypeProjected 1 +#define ModelTypeGeographic 2 +#define ModelTypeGeocentric 3 + +#define IS_SET(map, key) \ + ((map).contains(key) && (map).value(key).SHORT != 32767) + +#define ARRAY_SIZE(a) \ + (sizeof(a) / sizeof(*a)) + +typedef struct { + quint16 KeyDirectoryVersion; + quint16 KeyRevision; + quint16 MinorRevision; + quint16 NumberOfKeys; +} Header; + +typedef struct { + quint16 KeyID; + quint16 TIFFTagLocation; + quint16 Count; + quint16 ValueOffset; +} KeyEntry; + + +bool GeoTIFF::readEntry(TIFFFile &file, Ctx &ctx) +{ + quint16 tag; + quint16 type; + quint32 count, offset; + + if (!file.readValue(tag)) + return false; + if (!file.readValue(type)) + return false; + if (!file.readValue(count)) + return false; + if (!file.readValue(offset)) + return false; + + switch (tag) { + case ImageWidth: + if (!(type == TIFF_SHORT || type == TIFF_LONG)) + return false; + _size.setWidth(offset); + break; + case ImageHeight: + if (!(type == TIFF_SHORT || type == TIFF_LONG)) + return false; + _size.setHeight(offset); + break; + + case ModelPixelScaleTag: + if (type != TIFF_DOUBLE || count != 3) + return false; + ctx.scale = offset; + break; + case ModelTiepointTag: + if (type != TIFF_DOUBLE || count < 6 || count % 6) + return false; + ctx.tiepoints = offset; + ctx.tiepointCount = count / 6; + break; + case GeoKeyDirectoryTag: + if (type != TIFF_SHORT) + return false; + ctx.keys = offset; + break; + case GeoDoubleParamsTag: + if (type != TIFF_DOUBLE) + return false; + ctx.values = offset; + break; + case ModelTransformationTag: + if (type != TIFF_DOUBLE || count != 16) + return false; + ctx.matrix = offset; + break; + } + + return true; +} + +bool GeoTIFF::readIFD(TIFFFile &file, quint32 &offset, Ctx &ctx) +{ + quint16 count; + + if (!file.seek(offset)) + return false; + if (!file.readValue(count)) + return false; + + for (quint16 i = 0; i < count; i++) + if (!readEntry(file, ctx)) + return false; + + if (!file.readValue(offset)) + return false; + + return true; +} + +bool GeoTIFF::readScale(TIFFFile &file, quint32 offset, QPointF &scale) +{ + if (!file.seek(offset)) + return false; + + if (!file.readValue(scale.rx())) + return false; + if (!file.readValue(scale.ry())) + return false; + + return true; +} + +bool GeoTIFF::readTiepoints(TIFFFile &file, quint32 offset, quint32 count, + QList &points) +{ + double z, pz; + QPointF xy, pp; + + if (!file.seek(offset)) + return false; + + for (quint32 i = 0; i < count; i++) { + if (!file.readValue(xy.rx())) + return false; + if (!file.readValue(xy.ry())) + return false; + if (!file.readValue(z)) + return false; + + if (!file.readValue(pp.rx())) + return false; + if (!file.readValue(pp.ry())) + return false; + if (!file.readValue(pz)) + return false; + + ReferencePoint p; + p.xy = xy.toPoint(); + p.pp = pp; + points.append(p); + } + + return true; +} + +bool GeoTIFF::readKeys(TIFFFile &file, Ctx &ctx, QMap &kv) +{ + Header header; + KeyEntry entry; + Value value; + + if (!file.seek(ctx.keys)) + return false; + + if (!file.readValue(header.KeyDirectoryVersion)) + return false; + if (!file.readValue(header.KeyRevision)) + return false; + if (!file.readValue(header.MinorRevision)) + return false; + if (!file.readValue(header.NumberOfKeys)) + return false; + + for (int i = 0; i < header.NumberOfKeys; i++) { + if (!file.readValue(entry.KeyID)) + return false; + if (!file.readValue(entry.TIFFTagLocation)) + return false; + if (!file.readValue(entry.Count)) + return false; + if (!file.readValue(entry.ValueOffset)) + return false; + + switch (entry.KeyID) { + case GeographicTypeGeoKey: + case ProjectedCSTypeGeoKey: + case ProjCoordTransGeoKey: + case GTModelTypeGeoKey: + case GTRasterTypeGeoKey: + case GeogGeodeticDatumGeoKey: + case ProjectionGeoKey: + case GeogEllipsoidGeoKey: + if (entry.TIFFTagLocation != 0 || entry.Count != 1) + return false; + value.SHORT = entry.ValueOffset; + kv.insert(entry.KeyID, value); + break; + case ProjScaleAtNatOriginGeoKey: + case ProjNatOriginLongGeoKey: + case ProjNatOriginLatGeoKey: + case ProjFalseEastingGeoKey: + case ProjFalseNorthingGeoKey: + case ProjStdParallel1GeoKey: + case ProjStdParallel2GeoKey: + if (!readGeoValue(file, ctx.values, entry.ValueOffset, + value.DOUBLE)) + return false; + kv.insert(entry.KeyID, value); + break; + default: + break; + } + } + + return true; +} + +bool GeoTIFF::readGeoValue(TIFFFile &file, quint32 offset, quint16 index, + double &val) +{ + qint64 pos = file.pos(); + + if (!file.seek(offset + index * sizeof(double))) + return false; + if (!file.readValue(val)) + return false; + + if (!file.seek(pos)) + return false; + + return true; +} + +Datum GeoTIFF::datum(QMap &kv) +{ + Datum datum; + + if (IS_SET(kv, GeographicTypeGeoKey)) { + datum = Datum(kv.value(GeographicTypeGeoKey).SHORT); + if (datum.isNull()) + _errorString = QString("%1: unknown GCS") + .arg(kv.value(GeographicTypeGeoKey).SHORT); + } else if (IS_SET(kv, GeogGeodeticDatumGeoKey)) { + datum = Datum(kv.value(GeogGeodeticDatumGeoKey).SHORT - 2000); + if (datum.isNull()) + _errorString = QString("%1: unknown geodetic datum") + .arg(kv.value(GeogGeodeticDatumGeoKey).SHORT); + } else if (IS_SET(kv, GeogEllipsoidGeoKey) + && kv.value(GeogEllipsoidGeoKey).SHORT == 7019) { + datum = Datum(4326); + } else + _errorString = "Missing datum"; + + return datum; +} + +Projection::Method GeoTIFF::method(QMap &kv) +{ + int epsg; + int table[] = {0, 9807, 0, 0, 0, 0, 0, 1024, 9801, 9802, 9820, + 9822}; + + if (!IS_SET(kv, ProjCoordTransGeoKey)) { + _errorString = "Missing coordinate transformation method"; + return false; + } + + quint16 index = kv.value(ProjCoordTransGeoKey).SHORT; + epsg = (index >= ARRAY_SIZE(table)) ? 0 : table[index]; + + if (!epsg) { + _errorString = QString("Unknown coordinate transformation method"); + return false; + } + + return Projection::Method(epsg); +} + +bool GeoTIFF::projectedModel(QMap &kv) +{ + PCS pcs; + + if (IS_SET(kv, ProjectedCSTypeGeoKey)) { + pcs = PCS(kv.value(ProjectedCSTypeGeoKey).SHORT); + if (pcs.isNull()) + _errorString = QString("%1: unknown PCS") + .arg(kv.value(ProjectedCSTypeGeoKey).SHORT); + } else if (IS_SET(kv, GeographicTypeGeoKey) + && IS_SET(kv, ProjectionGeoKey)) { + pcs = PCS(kv.value(GeographicTypeGeoKey).SHORT, + kv.value(ProjectionGeoKey).SHORT); + if (pcs.isNull()) + _errorString = QString("%1+%2: unknown GCS+projection combination") + .arg(kv.value(GeographicTypeGeoKey).SHORT) + .arg(kv.value(ProjectionGeoKey).SHORT); + } else { + Datum d = datum(kv); + if (d.isNull()) + return false; + Projection::Method m = method(kv); + if (m.isNull()) + return false; + + Projection::Setup setup( + kv.value(ProjNatOriginLatGeoKey).DOUBLE, + kv.value(ProjNatOriginLongGeoKey).DOUBLE, + kv.value(ProjScaleAtNatOriginGeoKey).DOUBLE, + kv.value(ProjFalseEastingGeoKey).DOUBLE, + kv.value(ProjFalseNorthingGeoKey).DOUBLE, + kv.value(ProjStdParallel1GeoKey).DOUBLE, + kv.value(ProjStdParallel2GeoKey).DOUBLE + ); + + pcs = PCS(d, m, setup); + } + + _datum = pcs.datum(); + _projection = Projection::projection(pcs.datum(), pcs.method(), + pcs.setup()); + + return true; +} + +bool GeoTIFF::geographicModel(QMap &kv) +{ + _datum = datum(kv); + if (_datum.isNull()) + return false; + + _projection = new LatLon(); + + return true; +} + +bool GeoTIFF::load(const QString &path) +{ + quint32 ifd; + QList points; + QPointF scale; + QMap kv; + Ctx ctx; + TIFFFile file; + + + file.setFileName(path); + if (!file.open(QIODevice::ReadOnly)) { + _errorString = QString("Error opening TIFF file: %1") + .arg(file.errorString()); + return false; + } + if (!file.readHeader(ifd)) { + _errorString = "Invalid TIFF header"; + return false; + } + + while (ifd) { + if (!readIFD(file, ifd, ctx)) { + _errorString = "Invalid IFD"; + return false; + } + } + + if (!_size.isValid()) { + _errorString = "Invalid/missing image size"; + return false; + } + if (!ctx.keys) { + _errorString = "Not a GeoTIFF file"; + return false; + } + + if (ctx.scale) { + if (!readScale(file, ctx.scale, scale)) { + _errorString = "Error reading model pixel scale"; + return false; + } + } + if (ctx.tiepoints) { + if (!readTiepoints(file, ctx.tiepoints, ctx.tiepointCount, points)) { + _errorString = "Error reading raster->model tiepoint pairs"; + return false; + } + } + + if (!readKeys(file, ctx, kv)) { + _errorString = "Error reading Geo key/value"; + return false; + } + + switch (kv.value(GTModelTypeGeoKey).SHORT) { + case ModelTypeProjected: + if (!projectedModel(kv)) + return false; + break; + case ModelTypeGeographic: + if (!geographicModel(kv)) + return false; + break; + case ModelTypeGeocentric: + _errorString = "TODO ModelTypeGeocentric"; + return false; + default: + _errorString = "Unknown/missing model type"; + return false; + } + + if (ctx.scale && ctx.tiepoints) + _transform = QTransform(scale.x(), 0, 0, -scale.y(), + points.first().pp.x(), points.first().pp.y()).inverted(); + else if (ctx.tiepointCount > 1) { + Transform t(points); + if (t.isNull()) { + _errorString = t.errorString(); + return false; + } + _transform = t.transform(); + } else if (ctx.matrix) { + _errorString = "TODO ModelTransformationTag"; + return false; + } else { + _errorString = "Incomplete/missing model transformation info"; + return false; + } + + QFileInfo fi(path); + _name = fi.fileName(); + + return true; +} diff --git a/src/map/geotiff.h b/src/map/geotiff.h new file mode 100644 index 00000000..fa083f84 --- /dev/null +++ b/src/map/geotiff.h @@ -0,0 +1,69 @@ +#ifndef GEOTIFF_H +#define GEOTIFF_H + +#include +#include +#include +#include "datum.h" +#include "projection.h" +#include "tifffile.h" +#include "transform.h" + +class GeoTIFF +{ +public: + GeoTIFF() : _projection(0) {} + + bool load(const QString &path); + + const Datum &datum() const {return _datum;} + Projection *projection() const {return _projection;} + const QTransform &transform() const {return _transform;} + + const QString name() const {return _name;} + const QSize &size() const {return _size;} + + const QString &errorString() const {return _errorString;} + +private: + union Value { + quint16 SHORT; + double DOUBLE; + }; + + struct Ctx { + quint32 scale; + quint32 tiepoints; + quint32 tiepointCount; + quint32 matrix; + quint32 keys; + quint32 values; + + Ctx() : scale(0), tiepoints(0), tiepointCount(0), matrix(0), keys(0), + values(0) {} + }; + + bool readEntry(TIFFFile &file, Ctx &ctx); + bool readIFD(TIFFFile &file, quint32 &offset, Ctx &ctx); + bool readScale(TIFFFile &file, quint32 offset, QPointF &scale); + bool readTiepoints(TIFFFile &file, quint32 offset, quint32 count, + QList &points); + bool readKeys(TIFFFile &file, Ctx &ctx, QMap &kv); + bool readGeoValue(TIFFFile &file, quint32 offset, quint16 index, + double &val); + + Datum datum(QMap &kv); + Projection::Method method(QMap &kv); + bool geographicModel(QMap &kv); + bool projectedModel(QMap &kv); + + QTransform _transform; + Datum _datum; + Projection *_projection; + QSize _size; + QString _name; + + QString _errorString; +}; + +#endif // GEOTIFF_H diff --git a/src/map/lambertazimuthal.cpp b/src/map/lambertazimuthal.cpp index b666b242..8303f6be 100644 --- a/src/map/lambertazimuthal.cpp +++ b/src/map/lambertazimuthal.cpp @@ -54,13 +54,13 @@ LambertAzimuthal::LambertAzimuthal(const Ellipsoid &ellipsoid, { double es2, es4, es6; - _e = ellipsoid; - es2 = 2 * _e.flattening() - _e.flattening() * _e.flattening(); + es2 = 2 * ellipsoid.flattening() - ellipsoid.flattening() + * ellipsoid.flattening(); es4 = es2 * es2; es6 = es4 * es2; - _ra = _e.radius() * (1.0 - es2 / 6.0 - 17.0 * es4 / 360.0 - 67.0 * es6 - / 3024.0); + _ra = ellipsoid.radius() * (1.0 - es2 / 6.0 - 17.0 * es4 / 360.0 - 67.0 + * es6 / 3024.0); _latOrigin = deg2rad(latitudeOrigin); _sinLatOrigin = sin(_latOrigin); _cosLatOrigin = cos(_latOrigin); diff --git a/src/map/lambertazimuthal.h b/src/map/lambertazimuthal.h index b7710f7c..016f03e1 100644 --- a/src/map/lambertazimuthal.h +++ b/src/map/lambertazimuthal.h @@ -14,8 +14,6 @@ public: virtual Coordinates xy2ll(const QPointF &p) const; private: - Ellipsoid _e; - double _ra; double _sinLatOrigin; double _cosLatOrigin; diff --git a/src/map/lambertconic.cpp b/src/map/lambertconic.cpp index 89d80f4a..49510a13 100644 --- a/src/map/lambertconic.cpp +++ b/src/map/lambertconic.cpp @@ -1,3 +1,46 @@ +/* + * Based on libgeotrans with the following Source Code Disclaimer: + +1. The GEOTRANS source code ("the software") is provided free of charge by +the National Imagery and Mapping Agency (NIMA) of the United States +Department of Defense. Although NIMA makes no copyright claim under Title 17 +U.S.C., NIMA claims copyrights in the source code under other legal regimes. +NIMA hereby grants to each user of the software a license to use and +distribute the software, and develop derivative works. + +2. Warranty Disclaimer: The software was developed to meet only the internal +requirements of the U.S. National Imagery and Mapping Agency. The software +is provided "as is," and no warranty, express or implied, including but not +limited to the implied warranties of merchantability and fitness for +particular purpose or arising by statute or otherwise in law or from a +course of dealing or usage in trade, is made by NIMA as to the accuracy and +functioning of the software. + +3. NIMA and its personnel are not required to provide technical support or +general assistance with respect to the software. + +4. Neither NIMA nor its personnel will be liable for any claims, losses, or +damages arising from or connected with the use of the software. The user +agrees to hold harmless the United States National Imagery and Mapping +Agency. The user's sole and exclusive remedy is to stop using the software. + +5. NIMA requests that products developed using the software credit the +source of the software with the following statement, "The product was +developed using GEOTRANS, a product of the National Imagery and Mapping +Agency and U.S. Army Engineering Research and Development Center." + +6. For any products developed using the software, NIMA requires a disclaimer +that use of the software does not indicate endorsement or approval of the +product by the Secretary of Defense or the National Imagery and Mapping +Agency. Pursuant to the United States Code, 10 U.S.C. Sec. 2797, the name of +the National Imagery and Mapping Agency, the initials "NIMA", the seal of +the National Imagery and Mapping Agency, or any colorable imitation thereof +shall not be used to imply approval, endorsement, or authorization of a +product without prior written permission from United States Secretary of +Defense. + +*/ + #include #include "lambertconic.h" @@ -5,76 +48,229 @@ #define M_PI_2 1.57079632679489661923 #endif // M_PI_2 #ifndef M_PI_4 - #define M_PI_4 0.78539816339744830962 -#endif // M_PI_4 + #define M_PI_4 0.785398163397448309616 +#endif /* M_PI_4 */ -static double q(const Ellipsoid &el, double b) +#define LAMBERT_m(clat, essin) (clat / sqrt(1.0 - essin * essin)) +#define LAMBERT2_t(lat, essin, es_over_2) \ + (tan(M_PI_4 - lat / 2) * pow((1.0 + essin) / (1.0 - essin), es_over_2)) +#define LAMBERT1_t(lat, essin, es_over_2) \ + (tan(M_PI_4 - lat / 2) / pow((1.0 - essin) / (1.0 + essin), es_over_2)) + + +LambertConic1::LambertConic1(const Ellipsoid &ellipsoid, double latitudeOrigin, + double longitudeOrigin, double scale, double falseEasting, + double falseNorthing) { - double e = sqrt(el.flattening() * (2. - el.flattening())); - double esb = e * sin(b); - return log(tan(M_PI_4 + b / 2.) * pow((1. - esb) / (1. + esb), e / 2.)); + double es2; + double es_sin; + double m0; + double lat_orig; + + + lat_orig = deg2rad(latitudeOrigin); + _longitudeOrigin = deg2rad(longitudeOrigin); + if (_longitudeOrigin > M_PI) + _longitudeOrigin -= 2 * M_PI; + + _falseEasting = falseEasting; + _falseNorthing = falseNorthing; + + es2 = 2.0 * ellipsoid.flattening() - ellipsoid.flattening() + * ellipsoid.flattening(); + _es = sqrt(es2); + _es_over_2 = _es / 2.0; + + _n = sin(lat_orig); + + es_sin = _es * sin(lat_orig); + m0 = LAMBERT_m(cos(lat_orig), es_sin); + _t0 = LAMBERT1_t(lat_orig, es_sin, _es_over_2); + + _rho0 = ellipsoid.radius() * scale * m0 / _n; + + _rho_olat = _rho0; } -static double iq(const Ellipsoid &el, double q) +QPointF LambertConic1::ll2xy(const Coordinates &c) const { - double e = sqrt(el.flattening() * (2. - el.flattening())); - double b0 = 0.; - double b = 2. * atan(exp(q)) - M_PI_2; + double t; + double rho; + double dlam; + double theta; + double lat = deg2rad(c.lat()); - do { - b0 = b; - double esb = e * sin(b); - b = 2. * atan(exp(q) * pow((1. - esb) / (1. + esb), -e / 2.)) - M_PI_2; - } while (fabs(b - b0) > 1e-10); - return b; + if (fabs(fabs(lat) - M_PI_2) > 1.0e-10) { + t = LAMBERT1_t(lat, _es * sin(lat), _es_over_2); + rho = _rho0 * pow(t / _t0, _n); + } else + rho = 0.0; + + dlam = deg2rad(c.lon()) - _longitudeOrigin; + + if (dlam > M_PI) + dlam -= 2 * M_PI; + if (dlam < -M_PI) + dlam += 2 * M_PI; + + theta = _n * dlam; + + return QPointF(rho * sin(theta) + _falseEasting, _rho_olat - rho + * cos(theta) + _falseNorthing); } -static double nradius(const Ellipsoid &el, double phi) +Coordinates LambertConic1::xy2ll(const QPointF &p) const { - double sin_phi = sin(phi); - return (el.radius() / sqrt(1. - (el.flattening() * (2. - el.flattening())) - * sin_phi * sin_phi)); + double dx; + double dy; + double rho; + double rho_olat_minus_dy; + double t; + double PHI; + double es_sin; + double tempPHI = 0.0; + double theta = 0.0; + double tolerance = 4.85e-10; + int count = 30; + double lat, lon; + + + dy = p.y() - _falseNorthing; + dx = p.x() - _falseEasting; + rho_olat_minus_dy = _rho_olat - dy; + rho = sqrt(dx * dx + (rho_olat_minus_dy) * (rho_olat_minus_dy)); + + if (_n < 0.0) { + rho *= -1.0; + dx *= -1.0; + rho_olat_minus_dy *= -1.0; + } + + if (rho != 0.0) { + theta = atan2(dx, rho_olat_minus_dy) / _n; + t = _t0 * pow(rho / _rho0, 1 / _n); + PHI = M_PI_2 - 2.0 * atan(t); + while (fabs(PHI - tempPHI) > tolerance && count) { + tempPHI = PHI; + es_sin = _es * sin(PHI); + PHI = M_PI_2 - 2.0 * atan(t * pow((1.0 - es_sin) / (1.0 + es_sin), + _es_over_2)); + count--; + } + + if (!count) + return Coordinates(); + + lat = PHI; + lon = theta + _longitudeOrigin; + + if (fabs(lat) < 2.0e-7) + lat = 0.0; + if (lat > M_PI_2) + lat = M_PI_2; + else if (lat < -M_PI_2) + lat = -M_PI_2; + + if (lon > M_PI) { + if (lon - M_PI < 3.5e-6) + lon = M_PI; + else + lon -= 2 * M_PI; + } + if (lon < -M_PI) { + if (fabs(lon + M_PI) < 3.5e-6) + lon = -M_PI; + else + lon += 2 * M_PI; + } + + if (fabs(lon) < 2.0e-7) + lon = 0.0; + if (lon > M_PI) + lon = M_PI; + else if (lon < -M_PI) + lon = -M_PI; + } else { + if (_n > 0.0) + lat = M_PI_2; + else + lat = -M_PI_2; + lon = _longitudeOrigin; + } + + return Coordinates(rad2deg(lon), rad2deg(lat)); } -LambertConic::LambertConic(const Ellipsoid &ellipsoid, double standardParallel1, - double standardParallel2, double latitudeOrigin, double longitudeOrigin, - double scale, double falseEasting, double falseNorthing) : _e(ellipsoid) +LambertConic2::LambertConic2(const Ellipsoid &ellipsoid, + double standardParallel1, double standardParallel2, double latitudeOrigin, + double longitudeOrigin, double falseEasting, double falseNorthing) { - _cm = deg2rad(longitudeOrigin); - _fe = falseEasting; - _fn = falseNorthing; + double es, es_over_2, es2, es_sin; + double lat0; + double k0; + double t0; + double t1, t2; + double t_olat; + double m0; + double m1; + double m2; + double n; + double const_value; + double sp1, sp2; + double lat_orig; - double sp1 = deg2rad(standardParallel1); - double sp2 = deg2rad(standardParallel2); - double N1 = nradius(_e, sp1); - double N2 = nradius(_e, sp2); + lat_orig = deg2rad(latitudeOrigin); + sp1 = deg2rad(standardParallel1); + sp2 = deg2rad(standardParallel2); - _q0 = q(_e, deg2rad(latitudeOrigin)); - double q1 = q(_e, sp1); - double q2 = q(_e, sp2); + if (fabs(sp1 - sp2) > 1.0e-10) { + es2 = 2 * ellipsoid.flattening() - ellipsoid.flattening() + * ellipsoid.flattening(); + es = sqrt(es2); + es_over_2 = es / 2.0; - _n = log((N1 * cos(sp1)) / (N2 * cos(sp2))) / (q2 - q1); - double R1 = N1 * cos(sp1) / _n; - _R0 = scale * R1 * exp(_n * (q1 - _q0)); + es_sin = es * sin(lat_orig); + t_olat = LAMBERT2_t(lat_orig, es_sin, es_over_2); + + es_sin = es * sin(sp1); + m1 = LAMBERT_m(cos(sp1), es_sin); + t1 = LAMBERT2_t(sp1, es_sin, es_over_2); + + es_sin = es * sin(sp2); + m2 = LAMBERT_m(cos(sp2), es_sin); + t2 = LAMBERT2_t(sp2, es_sin, es_over_2); + + n = log(m1 / m2) / log(t1 / t2); + + lat0 = asin(n); + + es_sin = es * sin(lat0); + m0 = LAMBERT_m(cos(lat0), es_sin); + t0 = LAMBERT2_t(lat0, es_sin, es_over_2); + + k0 = (m1 / m0) * (pow(t0 / t1, n)); + + const_value = ((ellipsoid.radius() * m2) / (n * pow(t2, n))); + + falseNorthing += (const_value * pow(t_olat, n)) - (const_value + * pow(t0, n)); + } else { + lat0 = sp1; + k0 = 1.0; + } + + _lc1 = LambertConic1(ellipsoid, rad2deg(lat0), longitudeOrigin, k0, + falseEasting, falseNorthing); } -QPointF LambertConic::ll2xy(const Coordinates &c) const +QPointF LambertConic2::ll2xy(const Coordinates &c) const { - double dl = _n * (deg2rad(c.lon()) - _cm); - double R = _R0 * exp(_n * (_q0 - q(_e, deg2rad(c.lat())))); - - return QPointF(_fe + R * sin(dl), _fn + _R0 - R * cos(dl)); + return _lc1.ll2xy(c); } -Coordinates LambertConic::xy2ll(const QPointF &p) const +Coordinates LambertConic2::xy2ll(const QPointF &p) const { - double dl = atan((p.x() - _fe) / (_fn + _R0 - p.y())); - double dx = p.x() - _fe; - double dy = p.y() - _fn - _R0; - double R = sqrt(dx * dx + dy * dy); - double q = _q0 - log(fabs(R / _R0)) / _n; - - return Coordinates(rad2deg(_cm + dl / _n), rad2deg(iq(_e, q))); + return _lc1.xy2ll(p); } diff --git a/src/map/lambertconic.h b/src/map/lambertconic.h index c331d8e4..e8f4364b 100644 --- a/src/map/lambertconic.h +++ b/src/map/lambertconic.h @@ -4,26 +4,42 @@ #include "ellipsoid.h" #include "projection.h" -class LambertConic : public Projection +class LambertConic1 : public Projection { public: - LambertConic(const Ellipsoid &ellipsoid, double standardParallel1, - double standardParallel2, double latitudeOrigin, double longitudeOrigin, - double scale, double falseEasting, double falseNorthing); + LambertConic1() {} + LambertConic1(const Ellipsoid &ellipsoid, double latitudeOrigin, + double longitudeOrigin, double scale, double falseEasting, + double falseNorthing); virtual QPointF ll2xy(const Coordinates &c) const; virtual Coordinates xy2ll(const QPointF &p) const; private: - Ellipsoid _e; + double _longitudeOrigin; + double _falseEasting; + double _falseNorthing; - double _cm; - double _fe; - double _fn; - - double _q0; - double _R0; + double _es; + double _es_over_2; double _n; + double _t0; + double _rho0; + double _rho_olat; +}; + +class LambertConic2 : public Projection +{ +public: + LambertConic2(const Ellipsoid &ellipsoid, double standardParallel1, + double standardParallel2, double latitudeOrigin, double longitudeOrigin, + double falseEasting, double falseNorthing); + + virtual QPointF ll2xy(const Coordinates &c) const; + virtual Coordinates xy2ll(const QPointF &p) const; + +private: + LambertConic1 _lc1; }; #endif // LAMBERTCONIC_H diff --git a/src/map/mapfile.cpp b/src/map/mapfile.cpp new file mode 100644 index 00000000..082c8572 --- /dev/null +++ b/src/map/mapfile.cpp @@ -0,0 +1,265 @@ +#include "latlon.h" +#include "utm.h" +#include "mapfile.h" + + +static double parameter(const QString &str, bool *res) +{ + QString field = str.trimmed(); + if (field.isEmpty()) { + *res = true; + return NAN; + } + + return field.toDouble(res); +} + +int MapFile::parse(QIODevice &device, QList &points, + QString &projection, Projection::Setup &setup, QString &datum) +{ + bool res, r[8]; + int ln = 1; + + while (!device.atEnd()) { + QByteArray line = device.readLine(); + + if (ln == 1) { + if (!line.trimmed().startsWith("OziExplorer Map Data File")) + return ln; + } else if (ln == 2) + _name = line.trimmed(); + else if (ln == 3) + _image = line.trimmed(); + else if (ln == 5) + datum = line.split(',').at(0).trimmed(); + else { + QList list = line.split(','); + QString key(list.at(0).trimmed()); + bool ll = true; bool pp = true; + + + if (key.startsWith("Point") && list.count() == 17 + && !list.at(2).trimmed().isEmpty()) { + CalibrationPoint p; + + int x = list.at(2).trimmed().toInt(&res); + if (!res) + return ln; + int y = list.at(3).trimmed().toInt(&res); + if (!res) + return ln; + + int latd = list.at(6).trimmed().toInt(&res); + if (!res) + ll = false; + qreal latm = list.at(7).trimmed().toFloat(&res); + if (!res) + ll = false; + int lond = list.at(9).trimmed().toInt(&res); + if (!res) + ll = false; + qreal lonm = list.at(10).trimmed().toFloat(&res); + if (!res) + ll = false; + if (ll && list.at(8).trimmed() == "S") { + latd = -latd; + latm = -latm; + } + if (ll && list.at(11).trimmed() == "W") { + lond = -lond; + lonm = -lonm; + } + + p.zone = list.at(13).trimmed().toInt(&res); + if (!res) + p.zone = 0; + qreal ppx = list.at(14).trimmed().toFloat(&res); + if (!res) + pp = false; + qreal ppy = list.at(15).trimmed().toFloat(&res); + if (!res) + pp = false; + if (list.at(16).trimmed() == "S") + p.zone = -p.zone; + + p.rp.xy = QPoint(x, y); + if (ll) { + p.ll = Coordinates(lond + lonm/60.0, latd + latm/60.0); + if (p.ll.isValid()) + points.append(p); + else + return ln; + } else if (pp) { + p.rp.pp = QPointF(ppx, ppy); + points.append(p); + } else + return ln; + } else if (key == "IWH") { + if (list.count() < 4) + return ln; + int w = list.at(2).trimmed().toInt(&res); + if (!res) + return ln; + int h = list.at(3).trimmed().toInt(&res); + if (!res) + return ln; + _size = QSize(w, h); + } else if (key == "Map Projection") { + if (list.count() < 2) + return ln; + projection = list.at(1); + } else if (key == "Projection Setup") { + if (list.count() < 8) + return ln; + + setup = Projection::Setup( + parameter(list[1], &r[1]), parameter(list[2], &r[2]), + parameter(list[3], &r[3]), parameter(list[4], &r[4]), + parameter(list[5], &r[5]), parameter(list[6], &r[6]), + parameter(list[7], &r[7])); + + for (int i = 1; i < 8; i++) + if (!r[i]) + return ln; + } + } + + ln++; + } + + return 0; +} + +bool MapFile::parseMapFile(QIODevice &device, QList &points, + QString &projection, Projection::Setup &setup, QString &datum) +{ + int el; + + if (!device.open(QIODevice::ReadOnly)) { + _errorString = QString("Error opening map file: %1") + .arg(device.errorString()); + return false; + } + + if ((el = parse(device, points, projection, setup, datum))) { + _errorString = QString("Map file parse error on line %1").arg(el); + return false; + } + + return true; +} + +bool MapFile::createDatum(const QString &datum) +{ + _datum = Datum(datum); + if (_datum.isNull()) { + _errorString = QString("%1: Unknown datum").arg(datum); + return false; + } + + return true; +} + +bool MapFile::createProjection(const QString &name, + const Projection::Setup &setup, QList &points) +{ + if (name == "Mercator") + _projection = Projection::projection(_datum, 1024, setup); + else if (name == "Transverse Mercator") + _projection = Projection::projection(_datum, 9807, setup); + else if (name == "Latitude/Longitude") + _projection = new LatLon(); + else if (name == "Lambert Conformal Conic") + _projection = Projection::projection(_datum, 9802, setup); + else if (name == "Albers Equal Area") + _projection = Projection::projection(_datum, 9822, setup); + else if (name == "(A)Lambert Azimuthual Equal Area") + _projection = Projection::projection(_datum, 9820, setup); + else if (name == "(UTM) Universal Transverse Mercator") { + Projection::Setup s; + if (points.first().zone) + s = UTM::setup(points.first().zone); + else if (!points.first().ll.isNull()) + s = UTM::setup(UTM::zone(points.first().ll)); + else { + _errorString = "Can not determine UTM zone"; + return 0; + } + _projection = Projection::projection(_datum, 9807, s); + } else if (name == "(NZTM2) New Zealand TM 2000") + _projection = Projection::projection(_datum, 9807, Projection::Setup( + 0, 173.0, 0.9996, 1600000, 10000000, NAN, NAN)); + else if (name == "(BNG) British National Grid") + _projection = Projection::projection(_datum, 9807, Projection::Setup( + 49, -2, 0.999601, 400000, -100000, NAN, NAN)); + else if (name == "(IG) Irish Grid") + _projection = Projection::projection(_datum, 9807, Projection::Setup( + 53.5, -8, 1.000035, 200000, 250000, NAN, NAN)); + else if (name == "(SG) Swedish Grid") + _projection = Projection::projection(_datum, 9807, Projection::Setup( + 0, 15.808278, 1, 1500000, 0, NAN, NAN)); + else if (name == "(I) France Zone I") + _projection = Projection::projection(_datum, 9802, Projection::Setup( + 49.5, 2.337229, NAN, 600000, 1200000, 48.598523, 50.395912)); + else if (name == "(II) France Zone II") + _projection = Projection::projection(_datum, 9802, Projection::Setup( + 46.8, 2.337229, NAN, 600000, 2200000, 45.898919, 47.696014)); + else if (name == "(III) France Zone III") + _projection = Projection::projection(_datum, 9802, Projection::Setup( + 44.1, 2.337229, NAN, 600000, 3200000, 43.199291, 44.996094)); + else if (name == "(IV) France Zone IV") + _projection = Projection::projection(_datum, 9802, Projection::Setup( + 42.165, 2.337229, NAN, 234.358, 4185861.369, 41.560388, 42.767663)); + else if (name == "(VICGRID) Victoria Australia") + _projection = Projection::projection(_datum, 9802, Projection::Setup( + -37, 145, NAN, 2500000, 4500000, -36, -38)); + else if (name == "(VG94) VICGRID94 Victoria Australia") + _projection = Projection::projection(_datum, 9802, Projection::Setup( + -37, 145, NAN, 2500000, 2500000, -36, -38)); + else { + _errorString = QString("%1: Unknown map projection").arg(name); + return false; + } + + return true; +} + +bool MapFile::computeTransformation(QList &points) +{ + QList rp; + + for (int i = 0; i < points.size(); i++) { + if (points.at(i).rp.pp.isNull()) + points[i].rp.pp = _projection->ll2xy(points.at(i).ll); + + rp.append(points.at(i).rp); + } + + Transform t(rp); + if (t.isNull()) { + _errorString = t.errorString(); + return false; + } + + _transform = t.transform(); + + return true; +} + +bool MapFile::load(QIODevice &file) +{ + QList points; + QString projection, datum; + Projection::Setup setup; + + if (!parseMapFile(file, points, projection, setup, datum)) + return false; + if (!createDatum(datum)) + return false; + if (!createProjection(projection, setup, points)) + return false; + if (!computeTransformation(points)) + return false; + + return true; +} diff --git a/src/map/mapfile.h b/src/map/mapfile.h new file mode 100644 index 00000000..c74b9b4f --- /dev/null +++ b/src/map/mapfile.h @@ -0,0 +1,52 @@ +#ifndef MAPFILE_H +#define MAPFILE_H + +#include +#include +#include "datum.h" +#include "transform.h" +#include "projection.h" + +class MapFile +{ +public: + bool load(QIODevice &file); + + const Datum &datum() const {return _datum;} + Projection *projection() const {return _projection;} + const QTransform &transform() const {return _transform;} + + const QString &name() const {return _name;} + const QString &image() const {return _image;} + const QSize &size() const {return _size;} + + const QString &errorString() const {return _errorString;} + +private: + struct CalibrationPoint { + ReferencePoint rp; + Coordinates ll; + int zone; + }; + + int parse(QIODevice &device, QList &points, + QString &projection, Projection::Setup &setup, QString &datum); + bool parseMapFile(QIODevice &device, QList &points, + QString &projection, Projection::Setup &setup, QString &datum); + bool createDatum(const QString &datum); + bool createProjection(const QString &projection, + const Projection::Setup &setup, QList &points); + bool computeTransformation(QList &points); + + QString _name; + QString _image; + QSize _size; + + Datum _datum; + QTransform _transform; + Projection *_projection; + + QString _errorString; +}; + +#endif // MAPFILE_H diff --git a/src/map/maplist.cpp b/src/map/maplist.cpp index b37b5de3..817e62ac 100644 --- a/src/map/maplist.cpp +++ b/src/map/maplist.cpp @@ -80,7 +80,7 @@ bool MapList::loadMap(const QString &path) } } -bool MapList::loadTba(const QString &path) +bool MapList::loadAtlas(const QString &path) { Atlas *atlas = new Atlas(path, this); if (atlas->isValid()) { @@ -124,10 +124,10 @@ bool MapList::loadFile(const QString &path) if (suffix == "txt") return loadList(path); - else if (suffix == "map") + else if (suffix == "map" || suffix == "tif" || suffix == "tiff") return loadMap(path); else if (suffix == "tba") - return loadTba(path); + return loadAtlas(path); else if (suffix == "tar") return loadTar(path); else { @@ -138,13 +138,13 @@ bool MapList::loadFile(const QString &path) QString MapList::formats() { - return tr("Map files (*.map *.tba *.tar)") + ";;" + return tr("Map files (*.map *.tba *.tar *.tif *.tiff)") + ";;" + tr("URL list files (*.txt)"); } QStringList MapList::filter() { QStringList filter; - filter << "*.map" << "*.tba" << "*.tar" << "*.txt"; + filter << "*.map" << "*.tba" << "*.tar" << "*.txt" << "*.tif" << "*.tiff"; return filter; } diff --git a/src/map/maplist.h b/src/map/maplist.h index 6f9ae083..75f08325 100644 --- a/src/map/maplist.h +++ b/src/map/maplist.h @@ -25,7 +25,7 @@ private: bool loadList(const QString &path); bool loadMap(const QString &path); - bool loadTba(const QString &path); + bool loadAtlas(const QString &path); bool loadTar(const QString &path); QList _maps; diff --git a/src/map/offlinemap.cpp b/src/map/offlinemap.cpp index 321dba3a..b0a4ec8f 100644 --- a/src/map/offlinemap.cpp +++ b/src/map/offlinemap.cpp @@ -9,297 +9,20 @@ #include #include "common/coordinates.h" #include "common/rectc.h" -#include "datum.h" -#include "utm.h" -#include "matrix.h" -#include "ozf.h" +#include "mapfile.h" +#include "geotiff.h" #include "offlinemap.h" -int OfflineMap::parse(QIODevice &device, QList &points, - QString &projection, Projection::Setup &setup, QString &datum) +void OfflineMap::computeResolution() { - bool res; - int ln = 1; + Coordinates tl = xy2ll((bounds().topLeft())); + Coordinates br = xy2ll(bounds().bottomRight()); - while (!device.atEnd()) { - QByteArray line = device.readLine(); + qreal ds = tl.distanceTo(br); + qreal ps = QLineF(bounds().topLeft(), bounds().bottomRight()).length(); - if (ln == 1) { - if (!line.trimmed().startsWith("OziExplorer Map Data File")) - return ln; - } else if (ln == 2) - _name = line.trimmed(); - else if (ln == 3) - _imgPath = line.trimmed(); - else if (ln == 5) - datum = line.split(',').at(0).trimmed(); - else { - QList list = line.split(','); - QString key(list.at(0).trimmed()); - bool ll = true; bool pp = true; - - if (key.startsWith("Point") && list.count() == 17 - && !list.at(2).trimmed().isEmpty()) { - int x = list.at(2).trimmed().toInt(&res); - if (!res) - return ln; - int y = list.at(3).trimmed().toInt(&res); - if (!res) - return ln; - - int latd = list.at(6).trimmed().toInt(&res); - if (!res) - ll = false; - qreal latm = list.at(7).trimmed().toFloat(&res); - if (!res) - ll = false; - int lond = list.at(9).trimmed().toInt(&res); - if (!res) - ll = false; - qreal lonm = list.at(10).trimmed().toFloat(&res); - if (!res) - ll = false; - if (ll && list.at(8).trimmed() == "S") { - latd = -latd; - latm = -latm; - } - if (ll && list.at(11).trimmed() == "W") { - lond = -lond; - lonm = -lonm; - } - - setup.zone = list.at(13).trimmed().toInt(&res); - if (!res) - setup.zone = 0; - qreal ppx = list.at(14).trimmed().toFloat(&res); - if (!res) - pp = false; - qreal ppy = list.at(15).trimmed().toFloat(&res); - if (!res) - pp = false; - if (list.at(16).trimmed() == "S") - setup.zone = -setup.zone; - - ReferencePoint p; - p.xy = QPoint(x, y); - if (ll) { - p.ll = Coordinates(lond + lonm/60.0, latd + latm/60.0); - if (p.ll.isValid()) - points.append(p); - else - return ln; - } else if (pp) { - p.pp = QPointF(ppx, ppy); - points.append(p); - } else - return ln; - } else if (key == "IWH") { - if (list.count() < 4) - return ln; - int w = list.at(2).trimmed().toInt(&res); - if (!res) - return ln; - int h = list.at(3).trimmed().toInt(&res); - if (!res) - return ln; - _size = QSize(w, h); - } else if (key == "Map Projection") { - if (list.count() < 2) - return ln; - projection = list.at(1); - } else if (key == "Projection Setup") { - if (list.count() < 8) - return ln; - setup.latitudeOrigin = list.at(1).trimmed().toFloat(&res); - if (!res) - setup.latitudeOrigin = 0; - setup.longitudeOrigin = list.at(2).trimmed().toFloat(&res); - if (!res) - setup.longitudeOrigin = 0; - setup.scale = list.at(3).trimmed().toFloat(&res); - if (!res) - setup.scale = 1.0; - setup.falseEasting = list.at(4).trimmed().toFloat(&res); - if (!res) - setup.falseEasting = 0; - setup.falseNorthing = list.at(5).trimmed().toFloat(&res); - if (!res) - setup.falseNorthing = 0; - setup.standardParallel1 = list.at(6).trimmed().toFloat(&res); - if (!res) - setup.standardParallel1 = 0; - setup.standardParallel2 = list.at(7).trimmed().toFloat(&res); - if (!res) - setup.standardParallel2 = 0; - } - } - - ln++; - } - - if (!setup.zone && !points.first().ll.isNull()) - setup.zone = UTM::zone(points.first().ll); - - return 0; -} - -bool OfflineMap::parseMapFile(QIODevice &device, QList &points, - QString &projection, Projection::Setup &setup, QString &datum) -{ - int el; - - if (!device.open(QIODevice::ReadOnly)) { - _errorString = QString("Error opening map file: %1") - .arg(device.errorString()); - return false; - } - - if ((el = parse(device, points, projection, setup, datum))) { - _errorString = QString("Map file parse error on line %1").arg(el); - return false; - } - - return true; -} - -bool OfflineMap::createProjection(const QString &datum, - const QString &projection, const Projection::Setup &setup, - QList &points) -{ - if (points.count() < 2) { - _errorString = "Insufficient number of reference points"; - return false; - } - - Datum d = Datum::datum(datum); - if (d.isNull()) { - _errorString = QString("%1: Unknown datum").arg(datum); - return false; - } - - _projection = Projection::projection(projection, d.ellipsoid(), setup); - if (!_projection) { - _errorString = Projection::errorString(); - return false; - } - - for (int i = 0; i < points.size(); i++) { - if (points.at(i).ll.isNull()) - points[i].ll = d.toWGS84(_projection->xy2ll(points.at(i).pp)); - else - points[i].ll = d.toWGS84(points[i].ll); - } - - return true; -} - -bool OfflineMap::simpleTransformation(const QList &points) -{ - if (points.at(0).xy.x() == points.at(1).xy.x() - || points.at(0).xy.y() == points.at(1).xy.y()) { - _errorString = "Invalid reference points tuple"; - return false; - } - - QPointF p0(_projection->ll2xy(points.at(0).ll)); - QPointF p1(_projection->ll2xy(points.at(1).ll)); - - qreal dX, dY, lat0, lon0; - dX = (p0.x() - p1.x()) / (points.at(0).xy.x() - points.at(1).xy.x()); - dY = (p1.y() - p0.y()) / (points.at(1).xy.y() - points.at(0).xy.y()); - lat0 = p0.y() - points.at(0).xy.y() * dY; - lon0 = p1.x() - points.at(1).xy.x() * dX; - - _transform = QTransform(1.0/dX, 0, 0, 1.0/dY, -lon0/dX, -lat0/dY); - _inverted = _transform.inverted(); - - return true; -} - -bool OfflineMap::affineTransformation(const QList &points) -{ - Matrix c(3, 2); - c.zeroize(); - for (size_t i = 0; i < c.h(); i++) { - for (size_t j = 0; j < c.w(); j++) { - for (int k = 0; k < points.size(); k++) { - double f[3], t[2]; - QPointF p = _projection->ll2xy(points.at(k).ll); - - f[0] = p.x(); - f[1] = p.y(); - f[2] = 1.0; - t[0] = points.at(k).xy.x(); - t[1] = points.at(k).xy.y(); - c.m(i,j) += f[i] * t[j]; - } - } - } - - Matrix Q(3, 3); - Q.zeroize(); - for (int qi = 0; qi < points.size(); qi++) { - double v[3]; - QPointF p = _projection->ll2xy(points.at(qi).ll); - - v[0] = p.x(); - v[1] = p.y(); - v[2] = 1.0; - for (size_t i = 0; i < Q.h(); i++) - for (size_t j = 0; j < Q.w(); j++) - Q.m(i,j) += v[i] * v[j]; - } - - Matrix M = Q.augemented(c); - if (!M.eliminate()) { - _errorString = "Singular transformation matrix"; - return false; - } - - _transform = QTransform(M.m(0,3), M.m(0,4), M.m(1,3), M.m(1,4), M.m(2,3), - M.m(2,4)); - _inverted = _transform.inverted(); - - return true; -} - -bool OfflineMap::computeTransformation(const QList &points) -{ - Q_ASSERT(points.size() >= 2); - - if (points.size() == 2) - return simpleTransformation(points); - else - return affineTransformation(points); -} - -bool OfflineMap::computeResolution(QList &points) -{ - Q_ASSERT(points.count() >= 2); - - int maxLon = 0, minLon = 0, maxLat = 0, minLat = 0; - qreal dLon, pLon, dLat, pLat; - - for (int i = 1; i < points.size(); i++) { - if (points.at(i).ll.lon() < points.at(minLon).ll.lon()) - minLon = i; - if (points.at(i).ll.lon() > points.at(maxLon).ll.lon()) - maxLon = i; - if (points.at(i).ll.lat() < points.at(minLat).ll.lat()) - minLat = i; - if (points.at(i).ll.lat() > points.at(maxLat).ll.lat()) - maxLat = i; - } - - dLon = points.at(minLon).ll.distanceTo(points.at(maxLon).ll); - pLon = QLineF(points.at(minLon).xy, points.at(maxLon).xy).length(); - dLat = points.at(minLat).ll.distanceTo(points.at(maxLat).ll); - pLat = QLineF(points.at(minLat).xy, points.at(maxLat).xy).length(); - - _resolution = (dLon/pLon + dLat/pLat) / 2.0; - - return true; + _resolution = ds/ps; } bool OfflineMap::getImageInfo(const QString &path) @@ -384,13 +107,9 @@ bool OfflineMap::totalSizeSet() OfflineMap::OfflineMap(const QString &fileName, QObject *parent) : Map(parent) { - QList points; - QString proj, datum; - Projection::Setup setup; QFileInfo fi(fileName); QString suffix = fi.suffix().toLower(); - _valid = false; _img = 0; _projection = 0; @@ -411,22 +130,52 @@ OfflineMap::OfflineMap(const QString &fileName, QObject *parent) return; } QBuffer mapFile(&ba); - if (!parseMapFile(mapFile, points, proj, setup, datum)) + MapFile mf; + if (!mf.load(mapFile)) { + _errorString = mf.errorString(); return; - } else if (suffix =="map") { + } else { + _name = mf.name(); + _size = mf.size(); + _imgPath = mf.image(); + _datum = mf.datum(); + _projection = mf.projection(); + _transform = mf.transform(); + } + } else if (suffix == "map") { + MapFile mf; QFile mapFile(fileName); - if (!parseMapFile(mapFile, points, proj, setup, datum)) + if (!mf.load(mapFile)) { + _errorString = mf.errorString(); return; + } else { + _name = mf.name(); + _size = mf.size(); + _imgPath = mf.image(); + _datum = mf.datum(); + _projection = mf.projection(); + _transform = mf.transform(); + } + } else if (suffix == "tif" || suffix == "tiff") { + GeoTIFF gt; + if (!gt.load(fileName)) { + _errorString = gt.errorString(); + return; + } else { + _name = gt.name(); + _size = gt.size(); + _imgPath = fileName; + _datum = gt.datum(); + _projection = gt.projection(); + _transform = gt.transform(); + } } else { _errorString = "Not a map file"; return; } - if (!createProjection(datum, proj, setup, points)) - return; - if (!computeTransformation(points)) - return; - computeResolution(points); + _inverted = _transform.inverted(); + computeResolution(); if (_tar.isOpen()) { if (!totalSizeSet()) @@ -454,10 +203,8 @@ OfflineMap::OfflineMap(const QString &fileName, QObject *parent) OfflineMap::OfflineMap(const QString &fileName, Tar &tar, QObject *parent) : Map(parent) { - QList points; - QString proj, datum; - Projection::Setup setup; QFileInfo fi(fileName); + MapFile mf; _valid = false; _img = 0; @@ -477,28 +224,28 @@ OfflineMap::OfflineMap(const QString &fileName, Tar &tar, QObject *parent) } QBuffer buffer(&ba); - if (!parseMapFile(buffer, points, proj, setup, datum)) + if (!mf.load(buffer)) { + _errorString = mf.errorString(); return; - if (!createProjection(datum, proj, setup, points)) - return; - if (!totalSizeSet()) - return; - if (!computeTransformation(points)) - return; - computeResolution(points); + } + _name = mf.name(); + _size = mf.size(); + _datum = mf.datum(); + _projection = mf.projection(); + _transform = mf.transform(); + + _inverted = _transform.inverted(); + computeResolution(); _tarPath = fi.absolutePath() + "/" + fi.completeBaseName() + ".tar"; - _imgPath = QString(); _valid = true; } OfflineMap::~OfflineMap() { - if (_img) - delete _img; - if (_projection) - delete _projection; + delete _img; + delete _projection; } void OfflineMap::load() @@ -522,10 +269,8 @@ void OfflineMap::load() void OfflineMap::unload() { - if (_img) { - delete _img; - _img = 0; - } + delete _img; + _img = 0; } void OfflineMap::drawTiled(QPainter *painter, const QRectF &rect) @@ -599,13 +344,9 @@ void OfflineMap::drawOZF(QPainter *painter, const QRectF &rect) void OfflineMap::drawImage(QPainter *painter, const QRectF &rect) { - if (!_img || _img->isNull()) - painter->fillRect(rect, _backgroundColor); - else { - QRect r(rect.toRect()); - painter->drawImage(r.left(), r.top(), *_img, r.left(), r.top(), - r.width(), r.height()); - } + QRect r(rect.toRect()); + painter->drawImage(r.left(), r.top(), *_img, r.left(), r.top(), + r.width(), r.height()); } void OfflineMap::draw(QPainter *painter, const QRectF &rect) @@ -614,26 +355,28 @@ void OfflineMap::draw(QPainter *painter, const QRectF &rect) drawOZF(painter, rect); else if (_tileSize.isValid()) drawTiled(painter, rect); - else + else if (_img && !_img->isNull()) drawImage(painter, rect); + else + painter->fillRect(rect, _backgroundColor); } QPointF OfflineMap::ll2xy(const Coordinates &c) { if (_ozf.isOpen()) { - QPointF p(_transform.map(_projection->ll2xy(c))); + QPointF p(_transform.map(_projection->ll2xy(_datum.fromWGS84(c)))); return QPointF(p.x() * _scale.x(), p.y() * _scale.y()); } else - return _transform.map(_projection->ll2xy(c)); + return _transform.map(_projection->ll2xy(_datum.fromWGS84(c))); } Coordinates OfflineMap::xy2ll(const QPointF &p) { if (_ozf.isOpen()) { - return _projection->xy2ll(_inverted.map(QPointF(p.x() / _scale.x(), - p.y() / _scale.y()))); + return _datum.toWGS84(_projection->xy2ll(_inverted.map(QPointF(p.x() + / _scale.x(), p.y() / _scale.y())))); } else - return _projection->xy2ll(_inverted.map(p)); + return _datum.toWGS84(_projection->xy2ll(_inverted.map(p))); } QRectF OfflineMap::bounds() const diff --git a/src/map/offlinemap.h b/src/map/offlinemap.h index 38e8cdab..1593e2a9 100644 --- a/src/map/offlinemap.h +++ b/src/map/offlinemap.h @@ -3,7 +3,9 @@ #include #include "common/coordinates.h" +#include "datum.h" #include "projection.h" +#include "transform.h" #include "map.h" #include "tar.h" #include "ozf.h" @@ -50,40 +52,23 @@ public: {return _transform.map(p);} private: - struct ReferencePoint { - QPoint xy; - Coordinates ll; - QPointF pp; - }; - - int parse(QIODevice &device, QList &points, - QString &projection, Projection::Setup &setup, QString &datum); - bool parseMapFile(QIODevice &device, QList &points, - QString &projection, Projection::Setup &setup, QString &datum); - bool totalSizeSet(); - bool createProjection(const QString &datum, const QString &projection, - const Projection::Setup &setup, QList &points); - bool simpleTransformation(const QList &points); - bool affineTransformation(const QList &points); - bool computeTransformation(const QList &points); - bool computeResolution(QList &points); bool getTileInfo(const QStringList &tiles, const QString &path = QString()); bool getImageInfo(const QString &path); + bool totalSizeSet(); void drawTiled(QPainter *painter, const QRectF &rect); void drawOZF(QPainter *painter, const QRectF &rect); void drawImage(QPainter *painter, const QRectF &rect); + void computeResolution(); void rescale(int zoom); QString _name; - bool _valid; - QString _errorString; QSize _size; + Datum _datum; Projection *_projection; QTransform _transform, _inverted; - qreal _resolution; OZF _ozf; Tar _tar; @@ -94,7 +79,11 @@ private: QString _tileName; int _zoom; + qreal _resolution; QPointF _scale; + + bool _valid; + QString _errorString; }; #endif // OFFLINEMAP_H diff --git a/src/map/pcs.cpp b/src/map/pcs.cpp new file mode 100644 index 00000000..de369cfb --- /dev/null +++ b/src/map/pcs.cpp @@ -0,0 +1,125 @@ +#include "pcs.h" + + +class PCS::Entry { +public: + Entry(int id, int gcs, int proj, const PCS &pcs) + : _id(id), _gcs(gcs), _proj(proj), _pcs(pcs) {} + + int id() const {return _id;} + int gcs() const {return _gcs;} + int proj() const {return _proj;} + const PCS &pcs() const {return _pcs;} + +private: + int _id; + int _gcs; + int _proj; + PCS _pcs; +}; + +QList PCS::_pcss; +QString PCS::_errorString; +int PCS::_errorLine; + +static double parameter(const QString &str, bool *res) +{ + QString field = str.trimmed(); + if (field.isEmpty()) { + *res = true; + return NAN; + } + + return field.toDouble(res); +} + +PCS::PCS(int id) +{ + for (int i = 0; i < _pcss.size(); i++) { + if (_pcss.at(i).id() == id) { + *this = _pcss.at(i).pcs(); + return; + } + } + + *this = PCS(); +} + +PCS::PCS(int gcs, int proj) +{ + for (int i = 0; i < _pcss.size(); i++) { + if (_pcss.at(i).gcs() == gcs && _pcss.at(i).proj() == proj) { + *this = _pcss.at(i).pcs(); + return; + } + } + + *this = PCS(); +} + +bool PCS::loadList(const QString &path) +{ + QFile file(path); + bool res[12]; + int id, gcs, proj, transform; + + + if (!file.open(QFile::ReadOnly)) { + _errorString = qPrintable(file.errorString()); + return false; + } + + _errorLine = 1; + _errorString.clear(); + + while (!file.atEnd()) { + QByteArray line = file.readLine(); + QList list = line.split(','); + if (list.size() != 12) { + _errorString = "Format error"; + return false; + } + + id = list[1].trimmed().toInt(&res[1]);; + gcs = list[2].trimmed().toInt(&res[2]); + proj = list[3].trimmed().toInt(&res[3]); + transform = list[4].trimmed().toInt(&res[4]); + + Projection::Setup setup( + parameter(list[5], &res[5]), parameter(list[6], &res[6]), + parameter(list[7], &res[7]), parameter(list[8], &res[8]), + parameter(list[9], &res[9]), parameter(list[10], &res[10]), + parameter(list[11], &res[11])); + + for (int i = 1; i < 12; i++) { + if (!res[i]) { + _errorString = "Parse error"; + return false; + } + } + + Datum datum(gcs); + if (datum.isNull()) { + _errorString = "Unknown datum"; + return false; + } + Projection::Method method(transform); + if (method.isNull()) { + _errorString = "Unknown coordinates transformation method"; + return false; + } + + _pcss.append(Entry(id, gcs, proj, PCS(datum, method, setup))); + + _errorLine++; + } + + return true; +} + +QDebug operator<<(QDebug dbg, const PCS &pcs) +{ + dbg.nospace() << "PCS(" << pcs.datum() << ", " << pcs.method() + << ", " << pcs.setup() << ")"; + return dbg.space(); +} diff --git a/src/map/pcs.h b/src/map/pcs.h new file mode 100644 index 00000000..ea448603 --- /dev/null +++ b/src/map/pcs.h @@ -0,0 +1,46 @@ +#ifndef PCS_H +#define PCS_H + +#include +#include +#include "datum.h" +#include "projection.h" + +class PCS +{ +public: + PCS() {} + PCS(const Datum &datum, const Projection::Method &method, + const Projection::Setup &setup) + : _datum(datum), _method(method), _setup(setup) {} + PCS(int id); + PCS(int gcs, int proj); + + const Datum &datum() const {return _datum;} + const Projection::Method &method() const {return _method;} + const Projection::Setup &setup() const {return _setup;} + + bool isNull() const + {return (_datum.isNull() && _method.isNull());} + bool isValid() const + {return !(_datum.isNull() || _method.isNull());} + + static bool loadList(const QString &path); + static const QString &errorString() {return _errorString;} + static int errorLine() {return _errorLine;} + +private: + class Entry; + + Datum _datum; + Projection::Method _method; + Projection::Setup _setup; + + static QList _pcss; + static QString _errorString; + static int _errorLine; +}; + +QDebug operator<<(QDebug dbg, const PCS &pcs); + +#endif // PCS_H diff --git a/src/map/projection.cpp b/src/map/projection.cpp index ba52242e..7a088166 100644 --- a/src/map/projection.cpp +++ b/src/map/projection.cpp @@ -1,89 +1,76 @@ -#include "latlon.h" +#include "datum.h" #include "mercator.h" #include "transversemercator.h" -#include "utm.h" #include "lambertconic.h" #include "albersequal.h" #include "lambertazimuthal.h" +#include "projection.h" -QString Projection::_errorString; - -Projection *Projection::projection(const QString &name, - const Ellipsoid &ellipsoid, const Setup &setup) +Projection::Method::Method(int id) { - if (setup.latitudeOrigin < -90.0 || setup.latitudeOrigin > 90.0 - || setup.longitudeOrigin < -180.0 || setup.longitudeOrigin > 180.0 - || setup.standardParallel1 < -90.0 || setup.standardParallel1 > 90.0 - || setup.standardParallel2 < -90.0 || setup.standardParallel2 > 90.0) { - _errorString = "Invalid projection setup"; - return 0; + switch (id) { + case 1024: + case 9801: + case 9802: + case 9807: + case 9820: + case 9822: + case 9841: + _id = id; + break; + default: + _id = 0; } +} - if (name == "Mercator") - return new Mercator(); - else if (name == "Transverse Mercator") - return new TransverseMercator(ellipsoid, - setup.latitudeOrigin, setup.longitudeOrigin, setup.scale, - setup.falseEasting, setup.falseNorthing); - else if (name == "Latitude/Longitude") - return new LatLon(); - else if (name == "Lambert Conformal Conic") - return new LambertConic(ellipsoid, - setup.standardParallel1, setup.standardParallel2, - setup.latitudeOrigin, setup.longitudeOrigin, setup.scale, - setup.falseEasting, setup.falseNorthing); - else if (name == "Albers Equal Area") - return new AlbersEqual(ellipsoid, setup.standardParallel1, - setup.standardParallel2, setup.latitudeOrigin, setup.longitudeOrigin, - setup.falseEasting, setup.falseNorthing); - else if (name == "(A)Lambert Azimuthual Equal Area") - return new LambertAzimuthal(ellipsoid, setup.latitudeOrigin, - setup.longitudeOrigin, setup.falseEasting, setup.falseNorthing); - else if (name == "(UTM) Universal Transverse Mercator") { - if (setup.zone) - return new UTM(ellipsoid, setup.zone); - else { - _errorString = "Can not determine UTM zone"; +Projection *Projection::projection(const Datum &datum, const Method &method, + const Setup &setup) +{ + const Ellipsoid &ellipsoid = datum.ellipsoid(); + + switch (method.id()) { + case 9807: + return new TransverseMercator(ellipsoid, setup.latitudeOrigin(), + setup.longitudeOrigin(), setup.scale(), setup.falseEasting(), + setup.falseNorthing()); + case 1024: + case 9841: + return new Mercator(); + case 9802: + return new LambertConic2(ellipsoid, setup.standardParallel1(), + setup.standardParallel2(), setup.latitudeOrigin(), + setup.longitudeOrigin(), setup.falseEasting(), + setup.falseNorthing()); + case 9801: + return new LambertConic1(ellipsoid, setup.latitudeOrigin(), + setup.longitudeOrigin(), setup.scale(), setup.falseEasting(), + setup.falseNorthing()); + case 9820: + return new LambertAzimuthal(ellipsoid, setup.latitudeOrigin(), + setup.longitudeOrigin(), setup.falseEasting(), + setup.falseNorthing()); + case 9822: + return new AlbersEqual(ellipsoid, setup.standardParallel1(), + setup.standardParallel2(), setup.latitudeOrigin(), + setup.longitudeOrigin(), setup.falseEasting(), + setup.falseNorthing()); + default: return 0; - } - } else if (name == "(NZTM2) New Zealand TM 2000") - return new TransverseMercator(ellipsoid, 0, 173.0, 0.9996, - 1600000, 10000000); - else if (name == "(BNG) British National Grid") - return new TransverseMercator(ellipsoid, 49, -2, 0.999601, - 400000, -100000); - else if (name == "(IG) Irish Grid") - return new TransverseMercator(ellipsoid, 53.5, -8, 1.000035, - 200000, 250000); - else if (name == "(SG) Swedish Grid") - return new TransverseMercator(ellipsoid, 0, 15.808278, 1, - 1500000, 0); - else if (name == "(I) France Zone I") - return new LambertConic(ellipsoid, 48.598523, 50.395912, - 49.5, 2.337229, 1 /*0.99987734*/, 600000, 1200000); - else if (name == "(II) France Zone II") - return new LambertConic(ellipsoid, 45.898919, 47.696014, - 46.8, 2.337229, 1 /*0.99987742*/, 600000, 2200000); - else if (name == "(III) France Zone III") - return new LambertConic(ellipsoid, 43.199291, 44.996094, - 44.1, 2.337229, 1 /*0.99987750*/, 600000, 3200000); - else if (name == "(IV) France Zone IV") - return new LambertConic(ellipsoid, 41.560388, 42.767663, - 42.165, 2.337229, 1 /*0.99994471*/, 234.358, 4185861.369); - else if (name == "(VICGRID) Victoria Australia") - return new LambertConic(ellipsoid, -36, -38, -37, 145, 1, - 2500000, 4500000); - else if (name == "(VG94) VICGRID94 Victoria Australia") - return new LambertConic(ellipsoid, -36, -38, -37, 145, 1, - 2500000, 2500000); - else { - _errorString = QString("%1: Unknown map projection").arg(name); - return 0; } } -const QString &Projection::errorString() +QDebug operator<<(QDebug dbg, const Projection::Setup &setup) { - return _errorString; + dbg.nospace() << "Setup(" << setup.latitudeOrigin() << ", " + << setup.longitudeOrigin() << ", " << setup.scale() << ", " + << setup.falseEasting() << ", " << setup.falseNorthing() << ", " + << setup.standardParallel1() << ", " << setup.standardParallel2() << ")"; + return dbg.space(); +} + +QDebug operator<<(QDebug dbg, const Projection::Method &method) +{ + dbg.nospace() << "Method(" << method.id() << ")"; + return dbg.space(); } diff --git a/src/map/projection.h b/src/map/projection.h index a4b1f049..0356d509 100644 --- a/src/map/projection.h +++ b/src/map/projection.h @@ -2,22 +2,53 @@ #define PROJECTION_H #include -#include +#include #include "common/coordinates.h" -class Ellipsoid; +class Datum; class Projection { public: - struct Setup { - double latitudeOrigin; - double longitudeOrigin; - double scale; - double falseEasting; - double falseNorthing; - double standardParallel1; - double standardParallel2; - int zone; + class Setup { + public: + Setup() : _latitudeOrigin(NAN), _longitudeOrigin(NAN), _scale(NAN), + _falseEasting(NAN), _falseNorthing(NAN), _standardParallel1(NAN), + _standardParallel2(NAN) {} + Setup(double latitudeOrigin, double longitudeOrigin, double scale, + double falseEasting, double falseNorthing, double standardParallel1, + double standardParallel2) : _latitudeOrigin(latitudeOrigin), + _longitudeOrigin(longitudeOrigin), _scale(scale), + _falseEasting(falseEasting), _falseNorthing(falseNorthing), + _standardParallel1(standardParallel1), + _standardParallel2(standardParallel2) {} + + double latitudeOrigin() const {return _latitudeOrigin;} + double longitudeOrigin() const {return _longitudeOrigin;} + double scale() const {return _scale;} + double falseEasting() const {return _falseEasting;} + double falseNorthing() const {return _falseNorthing;} + double standardParallel1() const {return _standardParallel1;} + double standardParallel2() const {return _standardParallel2;} + + private: + double _latitudeOrigin; + double _longitudeOrigin; + double _scale; + double _falseEasting; + double _falseNorthing; + double _standardParallel1; + double _standardParallel2; + }; + + class Method { + public: + Method() : _id(0) {} + Method(int id); + + int id() const {return _id;} + bool isNull() const {return (_id == 0);} + private: + int _id; }; virtual ~Projection() {} @@ -25,12 +56,11 @@ public: virtual QPointF ll2xy(const Coordinates &c) const = 0; virtual Coordinates xy2ll(const QPointF &p) const = 0; - static Projection *projection(const QString &name, - const Ellipsoid &ellipsoid, const Setup &setup); - static const QString &errorString(); - -private: - static QString _errorString; + static Projection *projection(const Datum &datum, const Method &method, + const Setup &setup); }; +QDebug operator<<(QDebug dbg, const Projection::Setup &setup); +QDebug operator<<(QDebug dbg, const Projection::Method &method); + #endif // PROJECTION_H diff --git a/src/map/tifffile.cpp b/src/map/tifffile.cpp new file mode 100644 index 00000000..232295ae --- /dev/null +++ b/src/map/tifffile.cpp @@ -0,0 +1,28 @@ +#include "tifffile.h" + +#define TIFF_II 0x4949 +#define TIFF_MM 0x4D4D +#define TIFF_MAGIC 42 + +bool TIFFFile::readHeader(quint32 &ifd) +{ + quint16 endian, magic; + + if (QFile::read((char*)&endian, sizeof(endian)) < (qint64)sizeof(endian)) + return false; + if (endian == TIFF_II) + _be = false; + else if (endian == TIFF_MM) + _be = true; + else + return false; + + if (!readValue(magic)) + return false; + if (magic != TIFF_MAGIC) + return false; + if (!readValue(ifd)) + return false; + + return true; +} diff --git a/src/map/tifffile.h b/src/map/tifffile.h new file mode 100644 index 00000000..e5161ea2 --- /dev/null +++ b/src/map/tifffile.h @@ -0,0 +1,51 @@ +#ifndef TIFFFILE_H +#define TIFFFILE_H + +#include +#include + +class TIFFFile : public QFile +{ +public: + TIFFFile() : QFile(), _be(false) {} + TIFFFile(const QString &path) : QFile(path), _be(false) {} + + bool readHeader(quint32 &ifd); + template bool readValue(T &val) + { + T data; + + if (QFile::read((char*)&data, sizeof(T)) < (qint64)sizeof(T)) + return false; + + if (sizeof(T) > 4) { +#if Q_BYTE_ORDER == Q_BIG_ENDIAN + if (_be) + val = data; + else { + for (size_t i = 0; i < sizeof(T); i++) + *((char *)&val + i) = *((char*)&data + sizeof(T) - 1 - i); + } +#else + if (_be) { + for (size_t i = 0; i < sizeof(T); i++) + *((char *)&val + i) = *((char*)&data + sizeof(T) - 1 - i); + } else + val = data; +#endif + } else if (sizeof(T) > 1) { + if (_be) + val = qFromBigEndian(data); + else + val = qFromLittleEndian(data); + } else + val = data; + + return true; +} + +private: + bool _be; +}; + +#endif // TIFFFILE_H diff --git a/src/map/transform.cpp b/src/map/transform.cpp new file mode 100644 index 00000000..eaf48a1a --- /dev/null +++ b/src/map/transform.cpp @@ -0,0 +1,74 @@ +#include "projection.h" +#include "matrix.h" +#include "transform.h" + +void Transform::simple(const QList &points) +{ + if (points.at(0).xy.x() == points.at(1).xy.x() + || points.at(0).xy.y() == points.at(1).xy.y()) { + _errorString = "Invalid reference points tuple"; + return; + } + + qreal sX, sY, dX, dY; + sX = (points.at(0).xy.x() - points.at(1).xy.x()) + / (points.at(0).pp.x() - points.at(1).pp.x()); + sY = (points.at(1).xy.y() - points.at(0).xy.y()) + / (points.at(1).pp.y() - points.at(0).pp.y()); + dX = points.at(1).xy.x() - points.at(1).pp.x() * sX; + dY = points.at(0).xy.y() - points.at(0).pp.y() * sY; + + _transform = QTransform(sX, 0, 0, sY, dX, dY); +} + +void Transform::affine(const QList &points) +{ + Matrix c(3, 2); + c.zeroize(); + for (size_t i = 0; i < c.h(); i++) { + for (size_t j = 0; j < c.w(); j++) { + for (int k = 0; k < points.size(); k++) { + double f[3], t[2]; + + f[0] = points.at(k).pp.x(); + f[1] = points.at(k).pp.y(); + f[2] = 1.0; + t[0] = points.at(k).xy.x(); + t[1] = points.at(k).xy.y(); + c.m(i,j) += f[i] * t[j]; + } + } + } + + Matrix Q(3, 3); + Q.zeroize(); + for (int qi = 0; qi < points.size(); qi++) { + double v[3]; + + v[0] = points.at(qi).pp.x(); + v[1] = points.at(qi).pp.y(); + v[2] = 1.0; + for (size_t i = 0; i < Q.h(); i++) + for (size_t j = 0; j < Q.w(); j++) + Q.m(i,j) += v[i] * v[j]; + } + + Matrix M = Q.augemented(c); + if (!M.eliminate()) { + _errorString = "Singular transformation matrix"; + return; + } + + _transform = QTransform(M.m(0,3), M.m(0,4), M.m(1,3), M.m(1,4), M.m(2,3), + M.m(2,4)); +} + +Transform::Transform(const QList &points) +{ + if (points.count() < 2) + _errorString = "Insufficient number of reference points"; + else if (points.size() == 2) + simple(points); + else + affine(points); +} diff --git a/src/map/transform.h b/src/map/transform.h new file mode 100644 index 00000000..939e9bd2 --- /dev/null +++ b/src/map/transform.h @@ -0,0 +1,30 @@ +#ifndef TRANSFORM_H +#define TRANSFORM_H + +#include +#include +#include "common/coordinates.h" + +struct ReferencePoint { + QPoint xy; + QPointF pp; +}; + +class Transform +{ +public: + Transform(const QList &points); + + bool isNull() {return _transform.type() == QTransform::TxNone;} + const QString &errorString() const {return _errorString;} + const QTransform &transform() const {return _transform;} + +private: + void simple(const QList &points); + void affine(const QList &points); + + QTransform _transform; + QString _errorString; +}; + +#endif // TRANSFORM_H diff --git a/src/map/utm.cpp b/src/map/utm.cpp index d5a4d246..4f72198f 100644 --- a/src/map/utm.cpp +++ b/src/map/utm.cpp @@ -1,10 +1,10 @@ #include "ellipsoid.h" #include "utm.h" -UTM::UTM(const Ellipsoid &ellipsoid, int zone) - : _tm(ellipsoid, 0, (qAbs(zone) - 1)*6 - 180 + 3, 0.9996, 500000, - zone < 0 ? 10000000 : 0) +Projection::Setup UTM::setup(int zone) { + return Projection::Setup(0, (qAbs(zone) - 1)*6 - 180 + 3, 0.9996, 500000, + zone < 0 ? 10000000 : 0, 0, 0); } int UTM::zone(const Coordinates &c) diff --git a/src/map/utm.h b/src/map/utm.h index e6fb465c..59bdb402 100644 --- a/src/map/utm.h +++ b/src/map/utm.h @@ -2,22 +2,12 @@ #define UTM_H #include "projection.h" -#include "transversemercator.h" -class UTM : public Projection +class UTM { public: - UTM(const Ellipsoid &ellipsoid, int zone); - - virtual QPointF ll2xy(const Coordinates &c) const - {return _tm.ll2xy(c);} - virtual Coordinates xy2ll(const QPointF &p) const - {return _tm.xy2ll(p);} - static int zone(const Coordinates &c); - -private: - TransverseMercator _tm; + static Projection::Setup setup(int zone); }; #endif // UTM_H