1static const char *
const apszGcsNameMapping[] = {
2"North_American_Datum_1983",
"GCS_North_American_1983",
3"North_American_Datum_1927",
"GCS_North_American_1927",
4"NAD27_CONUS",
"GCS_North_American_1927",
5"Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93",
"GCS_RGNC_1991-93",
6"Reseau_Geodesique_de_la_Polynesie_Francaise",
"GCS_RGPF",
7"Rauenberg_1983",
"GCS_RD/83",
8"Phillipine_Reference_System_1992",
"GCS_PRS_1992",
9"Potsdam_1983",
"GCS_PD/83",
10"Datum_Geodesi_Nasional_1995",
"GCS_DGN_1995",
11"Islands_Network_1993",
"GCS_ISN_1993",
12"Institut_Geographique_du_Congo_Belge_1955",
"GCS_IGCB_1955",
13"IGC_1962_Arc_of_the_6th_Parallel_South",
"GCS_IGC_1962_6th_Parallel_South",
14"Jamaica_2001",
"GCS_JAD_2001",
15"European_Libyan_1979",
"GCS_European_Libyan_Datum_1979",
16"Madrid_1870",
"GCS_Madrid_1870_Madrid",
17"Azores_Occidental_Islands_1939",
"GCS_Azores_Occidental_1939",
18"Azores_Central_Islands_1948",
"GCS_Azores_Central_1948",
19"Azores_Oriental_Islands_1940",
"GCS_Azores_Oriental_1940",
20"Lithuania_1994",
"GCS_LKS_1994",
21"Libyan_Geodetic_Datum_2006",
"GCS_LGD2006",
23"Stockholm_1938",
"GCS_RT38",
24"Latvia_1992",
"GCS_LKS_1992",
25"Azores_Oriental_Islands_1995",
"GCS_Azores_Oriental_1995",
26"Azores_Central_Islands_1948",
"GCS_Azores_Central_1948",
27"Azores_Central_Islands_1995",
"GCS_Azores_Central_1995",
28"ATF",
"GCS_ATF_Paris",
30"Faroe_Datum_1954",
"GCS_FD_1954",
31"Vietnam_2000",
"GCS_VN_2000",
33"Qatar_1948",
"GCS_Qatar_1948",
34"Qatar",
"GCS_Qatar_1974",
35"Kuwait_Utility",
"GCS_KUDAMS",
36"ED_1950_16",
"GCS_European_1950",
37"SAD_1969_Mean",
"GCS_South_American_1969",
38"Sphere_of_Radius_6370997m",
"GCS_Sphere_ARC_INFO",
39"Australian_Geodetic_1966",
"GCS_Australian_1966",
40"Australian_Geodetic_1984",
"GCS_Australian_1984",
41"AGD84",
"GCS_Australian_1984",
42"AGD66",
"GCS_Australian_1966",
43"Rome_1940",
"GCS_Monte_Mario",
44"Tokyo_Japan",
"GCS_Tokyo",
45"Graciosa_Base_SW_1948_1",
"GCS_Graciosa_Base_SW_1948",
46"Datum_Lisboa_Bessel_1",
"GCS_Datum_Lisboa_Bessel",
47"Datum_Lisboa_Hayford_1",
"GCS_Datum_Lisboa_Hayford",
48"Observatorio_Metereo_1939_Grupo_Ocidental",
"GCS_Observ_Meteorologico_1939",
49"Porto_Santo_1936_1",
"GCS_Porto_Santo_1936",
50"Sao_Braz_1",
"GCS_Sao_Braz",
51"GDA94",
"GCS_GDA_1994",
52"HARN",
"GCS_North_American_1983_HARN",
53"NAD83_HARN",
"GCS_North_American_1983_HARN",
54"Voirol_1875",
"GCS_Voirol_1875",
55"Voirol_1960",
"GCS_Voirol_Unifie_1960",
56"Ain_el_Abd_1970_Bahrain",
"GCS_Ain_el_Abd_1970",
57"ED_1950_ED77",
"GCS_European_1950_ED77",
58"Naparima_1955_2",
"GCS_Naparima_1955",
59"Aratu_Brazil_Campos_Espirito_Santo_and_Santos_basins",
"GCS_Aratu",
60"Camacupa_Angola_1",
"GCS_Camacupa",
62"Carthage_Tunisia",
"GCS_Carthage",
63"Deir_ez_Zor_2",
"GCS_Deir_ez_Zor",
64"Old_Egyptian_1907",
"GCS_Egypt_1907",
65"PSAD56",
"GCS_Provisional_S_American_1956",
66"Indian 1975",
"GCS_Indian_1975",
67"Indian_1960_1",
"GCS_Indian_1960",
68"Kalianpur_1937_1",
"GCS_Kalianpur_1937",
69"Kertau_1948",
"GCS_Kertau",
70"Kertau_1968",
"GCS_Kertau",
71"Luzon",
"GCS_Luzon_1911",
72"Malongo_1987_1",
"GCS_Malongo_1987",
73"Minna_Cameroon",
"GCS_Minna",
74"Mporaloko_1",
"GCS_Mporaloko",
75"Nahrwan_Oman",
"GCS_Nahrwan_1967",
76"Naparima_BWI",
"GCS_Naparima_1972",
77"Geodetic_Datum_1949",
"GCS_New_Zealand_1949",
78"Qatar_National",
"GCS_Qatar_1974",
79"SAD_1969_Mean",
"GCS_South_American_1969",
80"Tananarive_Observatory_1925",
"GCS_Tananarive_1925",
81"Tananarive",
"GCS_Tananarive_1925",
82"Ireland_1965",
"GCS_TM65",
83"DE_DHDN_whole_country_2001_to_ETRS89",
"GCS_Deutsches_Hauptdreiecksnetz",
84"Belge_1972_1",
"GCS_Belge_1972",
85"WGS_72",
"GCS_WGS_1972",
86"JGD2000",
"GCS_JGD_2000",
87"NZGD49",
"GCS_New_Zealand_1949",
88"CH1903_1",
"GCS_CH1903",
89"DE_42/83_to_ETRS89",
"GCS_Pulkovo_1942",
90"DE_42_83_to_ETRS89",
"GCS_Pulkovo_1942",
91"Amersfoort_1",
"GCS_Amersfoort",
92"CH1903+_L+T1997",
"GCS_CH1903+",
93"Ord_Survey_G_Britain_1936",
"GCS_OSGB_1936",
94"European_Datum_1950",
"GCS_European_1950",
95"Geocentric_Datum_of_Australia_1994",
"GCS_GDA_1994",
96"NAD83_High_Accuracy_Regional_Network",
"GCS_North_American_1983_HARN",
97"Bogota_1975",
"GCS_Bogota",
98"North_American_Datum_1927_CGQ77",
"GCS_NAD_1927_CGQ77",
99"North_American_Datum_1927_1976",
"GCS_NAD_1927_Definition_1976",
100"European_Datum_1950_1977",
"GCS_European_1950_ED77",
101"WGS_1972_Transit_Broadcast_Ephemeris",
"GCS_WGS_1972_BE",
102"Greek_Geodetic_Reference_System_1987",
"GCS_GGRS_1987",
103"Militar_Geographische_Institute",
"GCS_MGI",
104"ED50",
"GCS_European_1950",
105"ETRS89",
"GCS_ETRS_1989",
106"NAD27_Michigan",
"GCS_North_American_Michigan",
109static const char *
const apszGcsNameMappingBasedOnProjCS[] = {
110"EUREF_FIN_TM35FIN",
"GCS_ETRS_1989",
"GCS_EUREF_FIN",
111"Nord_Maroc_Degree",
"GCS_Merchich",
"GCS_Merchich_Degree",
112"Sahara_Degree",
"GCS_Merchich",
"GCS_Merchich_Degree",
113"Sud_Maroc_Degree",
"GCS_Merchich",
"GCS_Merchich_Degree",
114"Merchich_Degree_UTM_Zone_28N",
"GCS_Merchich",
"GCS_Merchich_Degree",
115"Lambert_Conformal_Conic",
"GCS_Merchich",
"GCS_Merchich_Degree",
116"UTM",
"GCS_Merchich",
"GCS_Merchich_Degree",
117"UTM_Zone_28_Northern_Hemisphere",
"GCS_Merchich",
"GCS_Merchich_Degree",
118"Portuguese_National_Grid",
"GCS_Lisbon",
"GCS_Lisbon_Lisbon",
119"Belge_Lambert_1950",
"GCS_Belge_1950",
"GCS_Belge_1950_Brussels",
120"MONREF_1997_UTM_Zone_46N",
"GCS_ITRF_2000",
"GCS_MONREF_1997",
121"MONREF_1997_UTM_Zone_47N",
"GCS_ITRF_2000",
"GCS_MONREF_1997",
122nullptr,
nullptr,
nullptr};
124static const char *
const apszGcsNameMappingBasedOnUnit[] = {
125"Voirol_Unifie_1960",
"Degree",
"GCS_Voirol_Unifie_1960_Degree",
126"Voirol_1960",
"Degree",
"GCS_Voirol_Unifie_1960_Degree",
127"Voirol 1960",
"Degree",
"GCS_Voirol_Unifie_1960_Degree",
128"Voirol_1875",
"Degree",
"GCS_Voirol_1875_Degree",
129"Voirol 1875",
"Degree",
"GCS_Voirol_1875_Degree",
130"NTF",
"Grad",
"GCS_NTF_Paris",
131nullptr,
nullptr,
nullptr};
133static const char *
const apszGcsNameMappingBasedPrime[] = {
134"Bern_1898",
"Bern",
"GCS_Bern_1898_Bern",
135"Madrid_1870",
"Madrid",
"GCS_Madrid_1870_Madrid",
136"MGI",
"Ferro",
"GCS_MGI_Ferro",
137"MGI",
"Stockholm",
"GCS_RT38_Stockholm",
138"Monte_Mario",
"Rome",
"GCS_Monte_Mario_Rome",
139"NGO_1948",
"Oslo",
"GCS_NGO_1948_Oslo",
140"S_JTSK",
"Ferro",
"GCS_S_JTSK_Ferro",
141"Stockholm_1938",
"Stockholm",
"GCS_RT38_Stockholm",
142nullptr,
nullptr,
nullptr};
144static const char *
const apszInvFlatteningMapping[] = {
145"293.464999999",
"293.465",
146"293.465000003",
"293.465",
147"293.465073361",
"293.465",
148"293.466020000",
"293.46602",
149"293.466021293",
"293.46602",
150"293.4663077168286",
"293.466307656",
151"293.4664236085404",
"293.466307656",
152"294.2606763690",
"294.260676369",
153"294.9786981999",
"294.9786982",
154"294.978698213",
"294.9786982",
155"295.9999999999",
"296.0",
156"297.0000000000",
"297.0",
157"297.0000000284",
"297.0",
158"297.0000535480",
"297.0",
159"298.2499972761",
"298.25",
160"298.2500000654",
"298.25",
161"298.2500112226",
"298.25",
162"298.256999999",
"298.257",
163"298.2600000000",
"298.26",
164"298.2571643544962",
"298.257223563",
165"298.25716435449",
"298.257222101",
166"298.257222096042",
"298.257222101",
167"298.25722210100",
"298.257222101",
168"298.25722356299",
"298.257223563",
169"298.25722356300",
"298.257223563",
170"298.25999858999",
"298.26",
171"298.2684109950054",
"298.268410995005",
174"299.1527033239203",
"299.1528128",
175"299.15281280000",
"299.1528128",
176"299.15281283",
"299.1528128",
177"299.15281310607",
"299.1528128",
178"299.15281327254",
"299.1528128",
179"299.32496460000",
"299.3249646",
180"299.32496405862",
"299.3249646",
181"299.32497531503",
"299.3249646",
182"300.80158474106",
"300.8017",
183"300.80169943849",
"300.8017",
184"300.80169999999",
"300.8017",
185"300.80170000000",
"300.8017",
186"300.80170009712",
"300.8017",
189static const char *
const apszParamValueMapping[] = {
190"Cassini",
"false_easting",
"283799.9999",
"283800.0",
191"Cassini",
"false_easting",
"132033.9199",
"132033.92",
192"Cassini",
"false_northing",
"214499.9999",
"214500.0",
193"Cassini",
"false_northing",
"62565.9599",
"62565.95",
194"Transverse_Mercator",
"false_easting",
"499999.1331",
"500000.0",
195"Transverse_Mercator",
"false_easting",
"299999.4798609",
"300000.0",
196"Transverse_Mercator",
"false_northing",
"399999.30648",
"400000.0",
197"Transverse_Mercator",
"false_northing",
"499999.1331",
"500000.0",
198"Transverse_Mercator",
"central_meridian",
"51.21666666666668",
"51.21666666666667",
199"Transverse_Mercator",
"Scale_Factor",
"0.999601272",
"0.9996012717",
200"Lambert_Conformal_Conic",
"central_meridian",
"-90.33333333333334",
"-90.33333333333333",
201"Lambert_Conformal_Conic",
"central_meridian",
"-76.83333333333334",
"-76.83333333333333",
202"Krovak",
"longitude_of_center",
"24.83333333333334",
"24.83333333333333",
203"Hotine_Oblique_Mercator_Azimuth_Center",
"longitude_of_center",
"7.439583333333334",
"7.439583333333333",
204"Hotine_Oblique_Mercator_Azimuth_Center",
"latitude_of_center",
"46.95240555555557",
"46.95240555555556",
205nullptr,
nullptr,
nullptr,
nullptr};
207static const char *
const apszParamNameMapping[] = {
208"Lambert_Azimuthal_Equal_Area",
"longitude_of_center",
"Central_Meridian",
209"Lambert_Azimuthal_Equal_Area",
"Latitude_Of_Center",
"Latitude_Of_Origin",
210"Miller_Cylindrical",
"longitude_of_center",
"Central_Meridian",
211"Gnomonic",
"central_meridian",
"Longitude_Of_Center",
212"Gnomonic",
"latitude_of_origin",
"Latitude_Of_Center",
213"Orthographic",
"central_meridian",
"Longitude_Of_Center",
214"Orthographic",
"latitude_of_origin",
"Latitude_Of_Center",
215"New_Zealand_Map_Grid",
"central_meridian",
"Longitude_Of_Origin",
216"Hotine_Oblique_Mercator_Two_Point_Natural_Origin",
"latitude_of_point_1",
"Latitude_Of_1st_Point",
217"Hotine_Oblique_Mercator_Two_Point_Natural_Origin",
"longitude_of_point_1",
"Longitude_Of_1st_Point",
218"Hotine_Oblique_Mercator_Two_Point_Natural_Origin",
"latitude_of_point_2",
"Latitude_Of_2nd_Point",
219"Hotine_Oblique_Mercator_Two_Point_Natural_Origin",
"longitude_of_point_2",
"Longitude_Of_2nd_Point",
220nullptr,
nullptr,
nullptr};
222static const char *
const apszDeleteParametersBasedOnProjection[] = {
223"Stereographic_South_Pole",
"scale_factor",
224"Stereographic_North_Pole",
"scale_factor",
225"Mercator",
"scale_factor",
226"Miller_Cylindrical",
"latitude_of_center",
227"Equidistant_Cylindrical",
"pseudo_standard_parallel_1",
228"Equidistant_Cylindrical",
"latitude_of_origin",
229"Plate_Carree",
"latitude_of_origin",
230"Plate_Carree",
"pseudo_standard_parallel_1",
231"Plate_Carree",
"standard_parallel_1",
232"Hotine_Oblique_Mercator_Azimuth_Center",
"rectified_grid_angle",
233"Hotine_Oblique_Mercator_Azimuth_Natural_Origin",
"rectified_grid_angle",
236static const char *
const apszAddParametersBasedOnProjection[] = {
237"Cassini",
"scale_factor",
"1.0",
238"Mercator",
"standard_parallel_1",
"0.0",
239nullptr,
nullptr,
nullptr};
241static const int statePlaneZoneMapping[] = {
366static const int statePlanePcsCodeToZoneCode[] = {
636static const double apszWISCRS_LCC_meter[] = {
638 -91.1527777777, 46.6696483772, 103303.0,
639 -92.4577777777, 45.8987148658, 103306.0,
640 -91.2944444444, 44.9778568986, 103308.0,
641 -89.3944444444, 43.4625466458, 103310.0,
642 -90.9388888888, 43.2000556050, 103311.0,
643 -89.4222222222, 43.0695160375, 103312.0,
644 -91.2888888888, 45.8722811263, 103317.0,
645 -89.8388888888, 42.6375622769, 103322.0,
646 -89.2416666666, 43.8070001177, 103323.0,
647 -89.8388888888, 42.6375622769, 103332.0,
648 -89.0333333333, 45.1542371052, 103333.0,
649 -89.7700000000, 44.9009044236, 103336.0,
650 -89.2416666666, 43.8070001177, 103338.0,
651 -90.6416666666, 44.0000739286, 103341.0,
652 -89.5444444444, 45.7042237702, 103343.0,
653 -92.2277777777, 44.6361488719, 103346.0,
654 -92.2277777777, 44.6361488719, 103347.0,
655 -89.5000000000, 44.4168239752, 103349.0,
656 -90.4305555555, 43.3223129275, 103352.0,
657 -91.1166666666, 45.9000991313, 103356.0,
658 -90.4833333333, 45.1778220858, 103360.0,
659 -90.7833333333, 43.5750329397, 103362.0,
660 -89.4888888888, 46.0778440905, 103363.0,
661 -88.5416666667, 42.6694620969, 103364.0,
662 -91.7833333333, 45.9612198333, 103365.0,
663 -89.2416666666, 44.1139440458, 103369.0,
664 -90.0000000000, 44.3625954694, 103371.0,
668static const double apszWISCRS_TM_meter[] = {
670 -90.0000000000, 43.3666666666, 103300.0,
671 -90.6222222222, 45.7061111111, 103301.0,
672 -91.8500000000, 45.1333333333, 103302.0,
673 -88.0000000000, 43.0000000000, 103304.0,
674 -91.7972222222, 43.4813888888, 103305.0,
675 -88.5000000000, 42.7194444444, 103307.0,
676 -90.7083333333, 43.6000000000, 103309.0,
677 -88.7750000000, 41.4722222222, 103313.0,
678 -87.2722222222, 44.4000000000, 103314.0,
679 -91.9166666666, 45.8833333333, 103315.0,
680 -91.8944444444, 44.4083333333, 103316.0,
681 -88.1416666666, 45.4388888888, 103318.0,
682 -88.5000000000, 42.7194444444, 103319.0,
683 -88.6333333333, 44.0055555556, 103320.0,
684 -90.8000000000, 41.4111111111, 103321.0,
685 -90.1611111111, 42.5388888888, 103324.0,
686 -90.2555555555, 45.4333333333, 103325.0,
687 -90.8442965194, 44.2533351277, 103326.0,
688 -88.7750000000, 41.4722222222, 103327.0,
689 -90.0000000000, 43.3666666666, 103328.0,
690 -87.8944444444, 42.2166666666, 103329.0,
691 -87.5500000000, 43.2666666666, 103330.0,
692 -91.3166666666, 43.4511111111, 103331.0,
693 -89.7333333333, 44.8444444444, 103334.0,
694 -87.5500000000, 43.2666666666, 103335.0,
695 -87.7111111111, 44.6916666666, 103337.0,
696 -88.4166666666, 44.7166666666, 103339.0,
697 -87.8944444444, 42.2166666666, 103340.0,
698 -87.9083333333, 44.3972222222, 103342.0,
699 -88.5000000000, 42.7194444444, 103344.0,
700 -87.8944444444, 42.2166666666, 103345.0,
701 -92.6333333333, 44.6611111111, 103348.0,
702 -90.4888888889, 44.5555555556, 103350.0,
703 -87.8944444444, 42.2166666666, 103351.0,
704 -89.0722222222, 41.9444444444, 103353.0,
705 -91.0666666666, 43.9194444444, 103354.0,
706 -89.9000000000, 42.8194444444, 103355.0,
707 -88.6055555556, 44.0361111111, 103357.0,
708 -87.5500000000, 43.2666666666, 103358.0,
709 -92.6333333333, 44.0361111111, 103359.0,
710 -91.3666666666, 43.1611111111, 103361.0,
711 -88.0638888888, 42.9180555555, 103366.0,
712 -88.2250000000, 42.5694444444, 103367.0,
713 -88.8166666666, 43.4202777777, 103368.0,
714 -88.5000000000, 42.7194444444, 103370.0,