📄 geotrans_base.cpp
字号:
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{}
break;
//-----------------------------------------------------
case Geodetic: // case height type
sIdentifier.Append(SG_T("GEODETIC"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(
NULL, "TYPE" , _TL("Projection"),
_TL(""),
_TL("Geodetic")
);
pParameters->Add_Choice(
NULL, "HEIGHT" , _TL("Height"),
_TL(""),
CSG_String::Format(SG_T("%s|%s|%s|"),
_TL("No Height"),
_TL("Ellipsoid Height [m]"),
_TL("MSL Height [m]")
), 0
);
}
break;
//-----------------------------------------------------
case GEOREF: // Layout: 0*0*1
break;
//-----------------------------------------------------
case Gnomonic:
sIdentifier.Append(SG_T("GNOMONIC"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Gnomonic"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Lambert_Conformal_Conic:
sIdentifier.Append(SG_T("LAMBERT"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Lambert Conformal Conic"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 45.0);
pParameters->Add_Value (NULL, "PARALLEL_1" , _TL("1st Std. Parallel") , _TL(""), PARAMETER_TYPE_Degree, 40.0);
pParameters->Add_Value (NULL, "PARALLEL_2" , _TL("2nd Std. Parallel") , _TL(""), PARAMETER_TYPE_Degree, 50.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Local_Cartesian:
sIdentifier.Append(SG_T("LOCALCARTES"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Local Cartesian"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "HEIGHT" , _TL("Origin Height") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "ORIENT" , _TL("Orientation" ) , _TL(""), PARAMETER_TYPE_Degree, 0.0);
}
break;
//-----------------------------------------------------
case Mercator:
sIdentifier.Append(SG_T("MERCATOR"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Mercator"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "SCALE" , _TL("Scale Factor") , _TL(""), PARAMETER_TYPE_Double, 1.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Miller_Cylindrical:
sIdentifier.Append(SG_T("MILLER"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection" ) , _TL(""), _TL("Miller Cylindrical"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Mollweide:
sIdentifier.Append(SG_T("MOLLWEIDE"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Mollweide"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Neys:
sIdentifier.Append(SG_T("NEYS"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Neys (Modified Lambert Conformal Conic)"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 80.0);
pParameters->Add_Choice (NULL, "PARALLEL_1" , _TL("1st Std. Parallel") , _TL(""), SG_T(" 71 | 74 |"), 0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case NZMG: // Layout:0*0*2
sIdentifier.Append(SG_T("NZMG"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{}
break;
//-----------------------------------------------------
case Oblique_Mercator:
sIdentifier.Append(SG_T("OBLIQUE_MERCATOR"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Oblique Mercator"));
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude") , _TL(""), PARAMETER_TYPE_Degree, 45.0);
pParameters->Add_Value (NULL, "SCALE" , _TL("Scale Factor") , _TL(""), PARAMETER_TYPE_Double, 1.0);
pParameters->Add_Value (NULL, "LONGITUDE_1" , _TL("Longitude 1" ) , _TL(""), PARAMETER_TYPE_Degree, -5.0);
pParameters->Add_Value (NULL, "LATITUDE_1" , _TL("Latitude 1" ) , _TL(""), PARAMETER_TYPE_Degree, 40.0);
pParameters->Add_Value (NULL, "LONGITUDE_2" , _TL("Longitude 2" ) , _TL(""), PARAMETER_TYPE_Degree, 5.0);
pParameters->Add_Value (NULL, "LATITUDE_2" , _TL("Latitude 2" ) , _TL(""), PARAMETER_TYPE_Degree, 50.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Orthographic:
sIdentifier.Append(SG_T("ORTHOGRAPH"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection" ) , _TL(""), _TL("Orthographic"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Polar_Stereo:
sIdentifier.Append(SG_T("POLARSTEREO"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Polar Stereographic"));
pParameters->Add_Value (NULL, "LONGITUDE" , _TL("Lon. Down") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Lat. of True Scale") , _TL(""), PARAMETER_TYPE_Degree, 90.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Polyconic:
sIdentifier.Append(SG_T("POLYCONIC"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Polyconic"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Sinusoidal:
sIdentifier.Append(SG_T("SINUSOIDAL"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Sinusoidal"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Stereographic:
sIdentifier.Append(SG_T("STEREOGRAPH"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Stereographic"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Transverse_Cylindrical_Equal_Area:
sIdentifier.Append(SG_T("TRNSVCYLIND"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Transverse Cylindrical Equal Area"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "SCALE" , _TL("Scale Factor") , _TL(""), PARAMETER_TYPE_Double, 1.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case Transverse_Mercator:
sIdentifier.Append(SG_T("TRNSVMERCAT"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection" ) , _TL(""), _TL("Transverse Mercator"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "LATITUDE" , _TL("Origin Latitude" ) , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "SCALE" , _TL("Scale Factor") , _TL(""), PARAMETER_TYPE_Double, 1.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
//-----------------------------------------------------
case UPS: // case Layout:0*0*2 case Hemisphere
sIdentifier.Append(SG_T("UPS"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Choice (NULL, "HEMISPHERE" , _TL("Hemisphere") , _TL(""), _TL("North|South|"), 0);
}
break;
//-----------------------------------------------------
case UTM: // case Hemisphere case Zone
sIdentifier.Append(SG_T("UTM"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection") , _TL(""), _TL("Universal Transvers Mercator (UTM)"));
pParameters->Add_Value (NULL, "TOGCHECK" , _TL("Override") , _TL(""), PARAMETER_TYPE_Bool, true);
pParameters->Add_Choice (NULL, "HEMISPHERE" , _TL("Hemisphere") , _TL(""),_TL( "North|South|"), 0);
pParameters->Add_Value (NULL, "ZONE" , _TL("Zone") , _TL(""), PARAMETER_TYPE_Int, 1, 1, true , 60, true);
}
break;
//-----------------------------------------------------
case Van_der_Grinten: //Layout: 1*2*2
sIdentifier.Append(SG_T("VANGRINTEN"));
if( (pParameters = Get_Parameters(sIdentifier)) == NULL
&& (pParameters = Add_Parameters(sIdentifier, sName, _TL(""))) != NULL )
{
pParameters->Add_Info_String(NULL, "TYPE" , _TL("Projection" ) , _TL(""), _TL("Van der Grinten"));
pParameters->Add_Value (NULL, "MERIDIAN" , _TL("Central Meridian") , _TL(""), PARAMETER_TYPE_Degree, 0.0);
pParameters->Add_Value (NULL, "EASTING" , _TL("False Easting [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
pParameters->Add_Value (NULL, "NORTHING" , _TL("False Northing [m]") , _TL(""), PARAMETER_TYPE_Double, 0.0);
}
break;
}
//-----------------------------------------------------
if( pParameters )
{
if( !bShow_Dialog || pParameters->Get_Count() <= 0 )
{
return( pParameters );
}
else if( Dlg_Parameters(sIdentifier) )
{
return( pParameters );
}
}
//-----------------------------------------------------
return( NULL );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
bool CGEOTRANS_Base::On_Execute(void)
{
if( !Initialize() )
{
Message_Add(_TL("The GeoTRANS engine could not be initialized !!\n\n"));
Message_Add(_TL("Make sure that the files\n"));
Message_Add(_TL("Projection_GeoTRANS_Ellipsoid.dat,\n"));
Message_Add(_TL("Projection_GeoTRANS_Datum_3.dat,\n"));
Message_Add(_TL("Projection_GeoTRANS_Geoid_EGM96.dat,\n"));
Message_Add(_TL("Projection_GeoTRANS_Datum_7.dat,\n\n"));
Message_Add(_TL("are in the specified directory.\n"));
return( false );
}
if( !Dlg_Parameters("PROJECTION") )
{
return( false );
}
if( Set_Transformation(true) )
{
return( On_Execute_Conversion() );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -