📄 mitab_spatialref.cpp
字号:
{89, "Sao_Braz", 4, -203, 141, 53, 0, 0, 0, 0, 0},{90, "Sapper_Hill_1943", 4, -355, 16, 74, 0, 0, 0, 0, 0},{91, "Schwarzeck", 14,616, 97, -251, 0, 0, 0, 0, 0},{92, "South_American_Datum_1969", 24,-57, 1, -41, 0, 0, 0, 0, 0},{93, "South_Asia", 19,7, -10, -26, 0, 0, 0, 0, 0},{94, "Southeast_Base", 4, -499, -249,314, 0, 0, 0, 0, 0},{95, "Southwest_Base", 4, -104, 167, -38, 0, 0, 0, 0, 0},{96, "Timbalai_1948", 11,-689, 691, -46, 0, 0, 0, 0, 0},{97, "Tokyo", 10,-128, 481, 664, 0, 0, 0, 0, 0},{98, "Tristan_Astro_1968", 4, -632, 438, -609, 0, 0, 0, 0, 0},{99, "Viti_Levu_1916", 6, 51, 391, -36, 0, 0, 0, 0, 0},{100, "Wake_Entiwetok_1960", 23,101, 52, -39, 0, 0, 0, 0, 0},{101, "WGS_60", 26,0, 0, 0, 0, 0, 0, 0, 0},{102, "WGS_66", 27,0, 0, 0, 0, 0, 0, 0, 0},{103, "WGS_1972", 1, 0, 8, 10, 0, 0, 0, 0, 0},{104, "WGS_1984", 28,0, 0, 0, 0, 0, 0, 0, 0},{105, "Yacare", 4, -155, 171, 37, 0, 0, 0, 0, 0},{106, "Zanderij", 4, -265, 120, -358, 0, 0, 0, 0, 0},{107, "NTF", 30,-168, -60, 320, 0, 0, 0, 0, 0},{108, "European_Datum_1987", 4, -83, -96, -113, 0, 0, 0, 0, 0},{109, "Netherlands_Bessel", 10,593, 26, 478, 0, 0, 0, 0, 0},{110, "Belgium_Hayford", 4, 81, 120, 129, 0, 0, 0, 0, 0},{111, "NWGL_10", 1, -1, 15, 1, 0, 0, 0, 0, 0},{112, "Rikets_koordinatsystem_1990",10,498, -36, 568, 0, 0, 0, 0, 0},{113, "Lisboa_DLX", 4, -303, -62, 105, 0, 0, 0, 0, 0},{114, "Melrica_1973_D73", 4, -223, 110, 37, 0, 0, 0, 0, 0},{115, "Euref_98", 0, 0, 0, 0, 0, 0, 0, 0, 0},{116, "GDA94", 0, 0, 0, 0, 0, 0, 0, 0, 0},{117, "NZGD2000", 0, 0, 0, 0, 0, 0, 0, 0, 0},{118, "America_Samoa", 7, -115, 118, 426, 0, 0, 0, 0, 0},{119, "Antigua_Astro_1965", 6, -270, 13, 62, 0, 0, 0, 0, 0},{120, "Ayabelle_Lighthouse", 6, -79, -129, 145, 0, 0, 0, 0, 0},{121, "Bukit_Rimpah", 10,-384, 664, -48, 0, 0, 0, 0, 0},{122, "Estonia_1937", 10,374, 150, 588, 0, 0, 0, 0, 0},{123, "Dabola", 6, -83, 37, 124, 0, 0, 0, 0, 0},{124, "Deception_Island", 6, 260, 12, -147, 0, 0, 0, 0, 0},{125, "Fort_Thomas_1955", 6, -7, 215, 225, 0, 0, 0, 0, 0},{126, "Graciosa_base_1948", 4, -104, 167, -38, 0, 0, 0, 0, 0},{127, "Herat_North", 4, -333, -222,114, 0, 0, 0, 0, 0},{128, "Hermanns_Kogel", 10,682, -203, 480, 0, 0, 0, 0, 0},{129, "Indian", 50,283, 682, 231, 0, 0, 0, 0, 0},{130, "Indian_1954", 11,217, 823, 299, 0, 0, 0, 0, 0},{131, "Indian_1960", 11,198, 881, 317, 0, 0, 0, 0, 0},{132, "Indian_1975", 11,210, 814, 289, 0, 0, 0, 0, 0},{133, "Indonesian_Datum_1974", 4, -24, -15, 5, 0, 0, 0, 0, 0},{134, "ISTS061_Astro_1968", 4, -794, 119, -298, 0, 0, 0, 0, 0},{135, "Kusaie_Astro_1951", 4, 647, 1777, -1124,0, 0, 0, 0, 0},{136, "Leigon", 6, -130, 29, 364, 0, 0, 0, 0, 0},{137, "Montserrat_Astro_1958", 6, 174, 359, 365, 0, 0, 0, 0, 0},{138, "Mporaloko", 6, -74, -130, 42, 0, 0, 0, 0, 0},{139, "North_Sahara_1959", 6, -186, -93, 310, 0, 0, 0, 0, 0},{140, "Observatorio_Met_1939", 4, -425, -169,81, 0, 0, 0, 0, 0},{141, "Point_58", 6, -106, -129,165, 0, 0, 0, 0, 0},{142, "Pointe_Noire", 6, -148, 51, -291, 0, 0, 0, 0, 0},{143, "Porto_Santo_1936", 4, -499, -249,314, 0, 0, 0, 0, 0},{144, "Selvagem_Grande_1938", 4, -289, -124,60, 0, 0, 0, 0, 0},{145, "Sierra_Leone_1960", 6, -88, 4, 101, 0, 0, 0, 0, 0},{146, "S_JTSK_Ferro", 10, 589, 76, 480, 0, 0, 0, 0, 0},{147, "Tananarive_1925", 4, -189, -242,-91, 0, 0, 0, 0, 0},{148, "Voirol_1874", 6, -73, -247,227, 0, 0, 0, 0, 0},{149, "Virol_1960", 6, -123, -206,219, 0, 0, 0, 0, 0},{150, "Hartebeesthoek94", 0, 0, 0, 0, 0, 0, 0, 0, 0},{151, "ATS77", 51, 0, 0, 0, 0, 0, 0, 0, 0},{152, "JGD2000", 0, 0, 0, 0, 0, 0, 0, 0, 0},{1000,"DHDN_Potsdam_Rauenberg", 10,582, 105, 414, -1.04, -0.35, 3.08, 8.3, 0},{1001,"Pulkovo_1942", 3, 24, -123, -94, -0.02, 0.25, 0.13, 1.1, 0},{1002,"NTF_Paris_Meridian", 30,-168, -60, 320, 0, 0, 0, 0, 2.337229166667},{1003,"Switzerland_CH_1903", 10,660.077,13.551, 369.344, 0.804816, 0.577692, 0.952236, 5.66,0},{1004,"Hungarian_Datum_1972", 21,-56, 75.77, 15.31, -0.37, -0.2, -0.21, -1.01, 0},{1005,"Cape_7_Parameter", 28,-134.73,-110.92, -292.66, 0, 0, 0, 1, 0},{1006,"AGD84_7_Param_Aust", 2, -117.763,-51.51, 139.061, -0.292, -0.443, -0.277, -0.191, 0},{1007,"AGD66_7_Param_ACT", 2, -129.193,-41.212, 130.73, -0.246, -0.374, -0.329, -2.955, 0},{1008,"AGD66_7_Param_TAS", 2, -120.271,-64.543, 161.632, -0.2175, 0.0672, 0.1291, 2.4985, 0},{1009,"AGD66_7_Param_VIC_NSW", 2, -119.353,-48.301, 139.484, -0.415, -0.26, -0.437, -0.613, 0},{1010,"NZGD_7_Param_49", 4, 59.47, -5.04, 187.44, -0.47, 0.1, -1.024, -4.5993, 0},{1011,"Rikets_Tri_7_Param_1990", 10,419.3836, 99.3335, 591.3451, -0.850389, -1.817277, 7.862238, -0.99496, 0},{1012,"Russia_PZ90", 52, -1.08,-0.27,-0.9,0, 0, -0.16,-0.12, 0},{1013,"Russia_SK42", 52, 23.92,-141.27,-80.9, 0, -0.35,-0.82, -0.12, 0},{1014,"Russia_SK95", 52, 24.82,-131.21,-82.66,0,0,-0.16,-0.12, 0},{1015,"Tokyo", 10, -146.414, 507.337, 680.507,0,0,0,0,0},{1016,"Finnish_KKJ", 4, -96.062, -82.428, -121.754, -4.801, -0.345, 1.376, 1.496, 0},{-1, NULL, 0, 0, 0, 0, 0, 0, 0, 0}};/* -------------------------------------------------------------------- *//* This table was hand entered from Appendix I of the mapinfo 6 *//* manuals. *//* -------------------------------------------------------------------- */MapInfoSpheroidInfo asSpheroidInfoList[] ={{ 9,"Airy 1930", 6377563.396, 299.3249646},{13,"Airy 1930 (modified for Ireland 1965", 6377340.189, 299.3249646},{51,"ATS77 (Average Terrestrial System 1977)", 6378135, 298.257},{ 2,"Australian", 6378160.0, 298.25},{10,"Bessel 1841", 6377397.155, 299.1528128},{35,"Bessel 1841 (modified for NGO 1948)", 6377492.0176, 299.15281},{14,"Bessel 1841 (modified for Schwarzeck)", 6377483.865, 299.1528128},{36,"Clarke 1858", 6378293.639, 294.26068},{ 7,"Clarke 1866", 6378206.4, 294.9786982},{ 8,"Clarke 1866 (modified for Michigan)", 6378450.047484481,294.9786982},{ 6,"Clarke 1880", 6378249.145, 293.465},{15,"Clarke 1880 (modified for Arc 1950)", 6378249.145326, 293.4663076},{30,"Clarke 1880 (modified for IGN)", 6378249.2, 293.4660213},{37,"Clarke 1880 (modified for Jamaica)", 6378249.136, 293.46631},{16,"Clarke 1880 (modified for Merchich)", 6378249.2, 293.46598},{38,"Clarke 1880 (modified for Palestine)", 6378300.79, 293.46623},{39,"Everest (Brunei and East Malaysia)", 6377298.556, 300.8017},{11,"Everest (India 1830)", 6377276.345, 300.8017},{40,"Everest (India 1956)", 6377301.243, 300.80174},{50,"Everest (Pakistan)", 6377309.613, 300.8017},{17,"Everest (W. Malaysia and Singapore 1948)", 6377304.063, 300.8017},{48,"Everest (West Malaysia 1969)", 6377304.063, 300.8017},{18,"Fischer 1960", 6378166.0, 298.3},{19,"Fischer 1960 (modified for South Asia)", 6378155.0, 298.3},{20,"Fischer 1968", 6378150.0, 298.3},{21,"GRS 67", 6378160.0, 298.247167427},{ 0,"GRS 80", 6378137.0, 298.257222101},{ 5,"Hayford", 6378388.0, 297.0},{22,"Helmert 1906", 6378200.0, 298.3},{23,"Hough", 6378270.0, 297.0},{31,"IAG 75", 6378140.0, 298.257222},{41,"Indonesian", 6378160.0, 298.247},{ 4,"International 1924", 6378388.0, 297.0},{49,"Irish (WOFO)", 6377542.178, 299.325},{ 3,"Krassovsky", 6378245.0, 298.3},{32,"MERIT 83", 6378137.0, 298.257},{33,"New International 1967", 6378157.5, 298.25},{42,"NWL 9D", 6378145.0, 298.25},{43,"NWL 10D", 6378135.0, 298.26},{44,"OSU86F", 6378136.2, 298.25722},{45,"OSU91A", 6378136.3, 298.25722},{46,"Plessis 1817", 6376523.0, 308.64},{52,"PZ90", 6378136.0, 298.257839303},{24,"South American", 6378160.0, 298.25},{12,"Sphere", 6370997.0, 0.0},{47,"Struve 1860", 6378297.0, 294.73},{34,"Walbeck", 6376896.0, 302.78},{25,"War Office", 6378300.583, 296.0},{26,"WGS 60", 6378165.0, 298.3},{27,"WGS 66", 6378145.0, 298.25},{ 1,"WGS 72", 6378135.0, 298.26},{28,"WGS 84", 6378137.0, 298.257223563},{29,"WGS 84 (MAPINFO Datum 0)", 6378137.01, 298.257223563},{-1,NULL, 0.0, 0.0}}; /********************************************************************** * TABFile::GetSpatialRef() * * Returns a reference to an OGRSpatialReference for this dataset. * If the projection parameters have not been parsed yet, then we will * parse them before returning. * * The returned object is owned and maintained by this TABFile and * should not be modified or freed by the caller. * * Returns NULL if the SpatialRef cannot be accessed. **********************************************************************/OGRSpatialReference *TABFile::GetSpatialRef(){ if (m_eAccessMode != TABRead) { CPLError(CE_Failure, CPLE_NotSupported, "GetSpatialRef() can be used only with Read access."); return NULL; } if (m_poMAPFile == NULL ) { CPLError(CE_Failure, CPLE_AssertionFailed, "GetSpatialRef() failed: file has not been opened yet."); return NULL; } /*----------------------------------------------------------------- * If projection params have already been processed, just use them. *----------------------------------------------------------------*/ if (m_poSpatialRef != NULL) return m_poSpatialRef; /*----------------------------------------------------------------- * Fetch the parameters from the header. *----------------------------------------------------------------*/ TABMAPHeaderBlock *poHeader; TABProjInfo sTABProj; if ((poHeader = m_poMAPFile->GetHeaderBlock()) == NULL || poHeader->GetProjInfo( &sTABProj ) != 0) { CPLError(CE_Failure, CPLE_FileIO, "GetSpatialRef() failed reading projection parameters."); return NULL; } /*----------------------------------------------------------------- * Get the units name, and translation factor. *----------------------------------------------------------------*/ const char *pszUnitsName; const char *pszUnitsConv; double dfConv = 1.0; switch( sTABProj.nUnitsId ) { case 0: pszUnitsName = "Mile"; pszUnitsConv = "1609.344"; break; case 1: pszUnitsName = "Kilometer"; pszUnitsConv = "1000.0"; break; case 2: pszUnitsName = "IINCH"; pszUnitsConv = "0.0254"; break; case 3: pszUnitsName = SRS_UL_FOOT; pszUnitsConv = SRS_UL_FOOT_CONV; break; case 4: pszUnitsName = "IYARD"; pszUnitsConv = "0.9144"; break; case 5: pszUnitsName = "Millimeter"; pszUnitsConv = "0.001"; break; case 6: pszUnitsName = "Centimeter"; pszUnitsConv = "0.01"; break; case 7: pszUnitsName = SRS_UL_METER; pszUnitsConv = "1.0"; break; case 8: pszUnitsName = SRS_UL_US_FOOT; pszUnitsConv = SRS_UL_US_FOOT_CONV; break; case 9: pszUnitsName = SRS_UL_NAUTICAL_MILE; pszUnitsConv = SRS_UL_NAUTICAL_MILE_CONV; break; case 30: pszUnitsName = SRS_UL_LINK; pszUnitsConv = SRS_UL_LINK_CONV; break; case 31: pszUnitsName = SRS_UL_CHAIN; pszUnitsConv = SRS_UL_CHAIN_CONV; break; case 32: pszUnitsName = SRS_UL_ROD; pszUnitsConv = SRS_UL_ROD_CONV; break; default: pszUnitsName = SRS_UL_METER; pszUnitsConv = "1.0"; break; } dfConv = atof(pszUnitsConv); /*----------------------------------------------------------------- * Transform them into an OGRSpatialReference. *----------------------------------------------------------------*/ m_poSpatialRef = new OGRSpatialReference; /*----------------------------------------------------------------- * Handle the PROJCS style projections, but add the datum later. *----------------------------------------------------------------*/ switch( sTABProj.nProjId ) { /*--------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -