⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mitab_spatialref.cpp

📁 用于读取TAB、MIF、SHP文件的类
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{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 + -