1 static 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",
109 static 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",
122 nullptr,
nullptr,
nullptr};
124 static 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",
131 nullptr,
nullptr,
nullptr};
133 static 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",
142 nullptr,
nullptr,
nullptr};
144 static 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",
189 static 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",
205 nullptr,
nullptr,
nullptr,
nullptr};
207 static 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",
220 nullptr,
nullptr,
nullptr};
222 static 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",
236 static const char *
const apszAddParametersBasedOnProjection[] = {
237 "Cassini",
"scale_factor",
"1.0",
238 "Mercator",
"standard_parallel_1",
"0.0",
239 nullptr,
nullptr,
nullptr};
241 static const int statePlaneZoneMapping[] = {
366 static const int statePlanePcsCodeToZoneCode[] = {
636 static 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,
668 static 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,