📄 mitab_spatialref.cpp
字号:
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 )
{
/*--------------------------------------------------------------
* NonEarth ... we return with an empty SpatialRef. Eventually
* we might want to include the units, but not for now.
*-------------------------------------------------------------*/
case 0:
m_poSpatialRef->SetLocalCS( "Nonearth" );
break;
/*--------------------------------------------------------------
* lat/long .. just add the GEOGCS later.
*-------------------------------------------------------------*/
case 1:
break;
/*--------------------------------------------------------------
* Cylindrical Equal Area
*-------------------------------------------------------------*/
case 2:
m_poSpatialRef->SetCEA( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3] );
break;
/*--------------------------------------------------------------
* Lambert Conic Conformal
*-------------------------------------------------------------*/
case 3:
m_poSpatialRef->SetLCC( sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[4],
sTABProj.adProjParams[5] );
break;
/*--------------------------------------------------------------
* Lambert Azimuthal Equal Area
*-------------------------------------------------------------*/
case 4:
case 29:
m_poSpatialRef->SetLAEA( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Azimuthal Equidistant (Polar aspect only)
*-------------------------------------------------------------*/
case 5:
case 28:
m_poSpatialRef->SetAE( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Equidistant Conic
*-------------------------------------------------------------*/
case 6:
m_poSpatialRef->SetEC( sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[4],
sTABProj.adProjParams[5] );
break;
/*--------------------------------------------------------------
* Hotine Oblique Mercator
*-------------------------------------------------------------*/
case 7:
m_poSpatialRef->SetHOM( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
90.0,
sTABProj.adProjParams[3],
sTABProj.adProjParams[4],
sTABProj.adProjParams[5] );
break;
/*--------------------------------------------------------------
* Transverse Mercator
*-------------------------------------------------------------*/
case 8:
m_poSpatialRef->SetTM( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[4] );
break;
/*----------------------------------------------------------------
* Transverse Mercator,(modified for Danish System 34 Jylland-Fyn)
*---------------------------------------------------------------*/
case 21:
m_poSpatialRef->SetTMVariant( SRS_PT_TRANSVERSE_MERCATOR_MI_21,
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[4] );
break;
/*--------------------------------------------------------------
* Transverse Mercator,(modified for Danish System 34 Sjaelland)
*-------------------------------------------------------------*/
case 22:
m_poSpatialRef->SetTMVariant( SRS_PT_TRANSVERSE_MERCATOR_MI_22,
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[4] );
break;
/*----------------------------------------------------------------
* Transverse Mercator,(modified for Danish System 34/45 Bornholm)
*---------------------------------------------------------------*/
case 23:
m_poSpatialRef->SetTMVariant( SRS_PT_TRANSVERSE_MERCATOR_MI_23,
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[4] );
break;
/*--------------------------------------------------------------
* Transverse Mercator,(modified for Finnish KKJ)
*-------------------------------------------------------------*/
case 24:
m_poSpatialRef->SetTMVariant( SRS_PT_TRANSVERSE_MERCATOR_MI_24,
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[4] );
break;
/*--------------------------------------------------------------
* Albers Conic Equal Area
*-------------------------------------------------------------*/
case 9:
m_poSpatialRef->SetACEA( sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[4],
sTABProj.adProjParams[5] );
break;
/*--------------------------------------------------------------
* Mercator
*-------------------------------------------------------------*/
case 10:
m_poSpatialRef->SetMercator( 0.0, sTABProj.adProjParams[0],
1.0, 0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Miller Cylindrical
*-------------------------------------------------------------*/
case 11:
m_poSpatialRef->SetMC( 0.0, sTABProj.adProjParams[0],
0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Robinson
*-------------------------------------------------------------*/
case 12:
m_poSpatialRef->SetRobinson( sTABProj.adProjParams[0],
0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Mollweide
*-------------------------------------------------------------*/
case 13:
m_poSpatialRef->SetMollweide( sTABProj.adProjParams[0],
0.0, 0.0 );
/*--------------------------------------------------------------
* Eckert IV
*-------------------------------------------------------------*/
case 14:
m_poSpatialRef->SetEckertIV( sTABProj.adProjParams[0], 0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Eckert VI
*-------------------------------------------------------------*/
case 15:
m_poSpatialRef->SetEckertVI( sTABProj.adProjParams[0], 0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Sinusoidal
*-------------------------------------------------------------*/
case 16:
m_poSpatialRef->SetSinusoidal( sTABProj.adProjParams[0],
0.0, 0.0 );
break;
/*--------------------------------------------------------------
* Gall Stereographic
*-------------------------------------------------------------*/
case 17:
m_poSpatialRef->SetGS( sTABProj.adProjParams[0], 0.0, 0.0 );
break;
/*--------------------------------------------------------------
* New Zealand Map Grid
*-------------------------------------------------------------*/
case 18:
m_poSpatialRef->SetNZMG( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3] );
break;
/*--------------------------------------------------------------
* Lambert Conic Conformal (Belgium)
*-------------------------------------------------------------*/
case 19:
m_poSpatialRef->SetLCCB( sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[4],
sTABProj.adProjParams[5] );
break;
/*--------------------------------------------------------------
* Stereographic
*-------------------------------------------------------------*/
case 20:
case 31: /* this is called Double Stereographic, whats the diff? */
m_poSpatialRef->SetStereographic( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3],
sTABProj.adProjParams[4] );
break;
/*--------------------------------------------------------------
* Swiss Oblique Mercator / Cylindrical
*-------------------------------------------------------------*/
case 25:
m_poSpatialRef->SetSOC( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
sTABProj.adProjParams[2],
sTABProj.adProjParams[3] );
break;
/*--------------------------------------------------------------
* Regional Mercator (regular mercator with a latitude).
*-------------------------------------------------------------*/
case 26:
m_poSpatialRef->SetMercator( sTABProj.adProjParams[1],
sTABProj.adProjParams[0],
1.0, 0.0, 0.0 );
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -