Changeset 13482

Show
Ignore:
Timestamp:
01/07/08 10:59:15 (4 months ago)
Author:
warmerdam
Message:

Add EquidistantCylindricalSphere? and GaussLabordeReunion? (#2134)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/gdal/ogr/ogr_spatialref.h

    r13427 r13482  
    307307                             double dfFalseEasting, double dfFalseNorthing ); 
    308308 
     309    /** Equidistant Cylindrical Sphere */ 
     310    OGRErr      SetEquidistantCylindricalSphere(double dfCenterLat, double dfCenterLong, 
     311                            double dfScale, 
     312                            double dfFalseEasting, double dfFalseNorthing ); 
     313 
    309314    /** Equirectangular */ 
    310315    OGRErr      SetEquirectangular(double dfCenterLat, double dfCenterLong, 
     
    322327    OGRErr      SetGS( double dfCentralMeridian, 
    323328                       double dfFalseEasting, double dfFalseNorthing ); 
    324      
     329  
     330    /** Gauss Laborde Reunion */ 
     331    OGRErr      SetGaussLabordeReunion(double dfCenterLat, double dfCenterLong, 
     332                                       double dfScale, 
     333                                       double dfFalseEasting, double dfFalseNorthing ); 
     334 
    325335    /** Gnomonic */ 
    326336    OGRErr      SetGnomonic(double dfCenterLat, double dfCenterLong, 
  • trunk/gdal/ogr/ogr_srs_api.h

    r13427 r13482  
    9595#define SRS_PT_ECKERT_V         "Eckert_V" 
    9696#define SRS_PT_ECKERT_VI        "Eckert_VI" 
    97 #define SRS_PT_EQUIDISTANT_CONIC "Equidistant_Conic" 
     97#define SRS_PT_EQUIDISTANT_CONIC                                        \ 
     98                                "Equidistant_Conic" 
     99#define SRS_PT_EQUIDISTANT_CYLINDRICAL_SHERE                            \ 
     100                                "Equidistant_Cylindrical_Sphere" 
    98101#define SRS_PT_EQUIRECTANGULAR  "Equirectangular" 
    99 #define SRS_PT_GALL_STEREOGRAPHIC "Gall_Stereographic" 
    100 #define SRS_PT_GEOSTATIONARY_SATELLITE "Geostationary_Satellite" 
     102#define SRS_PT_GALL_STEREOGRAPHIC                                       \ 
     103                                "Gall_Stereographic" 
     104#define SRS_PT_GAUSSLABORDEREUNION                                      \ 
     105                                "Gauss_Laborde_Sphere_Geometric_Mean" 
     106#define SRS_PT_GEOSTATIONARY_SATELLITE                                  \ 
     107                                "Geostationary_Satellite" 
    101108#define SRS_PT_GOODE_HOMOLOSINE "Goode_Homolosine" 
    102109#define SRS_PT_GNOMONIC         "Gnomonic" 
  • trunk/gdal/ogr/ogr_srs_proj4.cpp

    r13427 r13482  
    487487    } 
    488488 
     489    else if( EQUAL(pszProj,"eqr") ) 
     490    { 
     491        SetEquidistantCylindricalSphere( OSR_GDV( papszNV, "lat_ts", 0.0 ), 
     492                                         OSR_GDV( papszNV, "lon_0", 0.0 )+dfFromGreenwich, 
     493                                         OSR_GDV( papszNV, "k_0", 6378137.0 ), 
     494                                         OSR_GDV( papszNV, "x_0", 0.0 ), 
     495                                         OSR_GDV( papszNV, "y_0", 0.0 ) ); 
     496    } 
     497 
     498   else if( EQUAL(pszProj,"glabsgm") ) 
     499   { 
     500       SetGaussLabordeReunion( OSR_GDV( papszNV, "lat_0", -21.116666667 ), 
     501                               OSR_GDV( papszNV, "lon_0", 55.53333333309)+dfFromGreenwich, 
     502                               OSR_GDV( papszNV, "k_0", 1.0 ), 
     503                               OSR_GDV( papszNV, "x_0", 160000.000 ), 
     504                               OSR_GDV( papszNV, "y_0", 50000.000 ) ); 
     505   } 
     506 
    489507    else if( EQUAL(pszProj,"gnom") ) 
    490508    { 
     
    12021220    } 
    12031221 
     1222    else if( EQUAL(pszProjection,SRS_PT_EQUIDISTANT_CYLINDRICAL_SHERE) ) 
     1223    { 
     1224        sprintf( szProj4+strlen(szProj4), 
     1225                 "+proj=eqr +lat_ts=%.16g +lon_0=%.16g +k_0=%.16g +x_0=%.16g +y_0=%.16g ", 
     1226                 GetNormProjParm(SRS_PP_LATITUDE_OF_ORIGIN,0.0), 
     1227                 GetNormProjParm(SRS_PP_CENTRAL_MERIDIAN,0.0), 
     1228                 GetNormProjParm(SRS_PP_SCALE_FACTOR,6378137.0), 
     1229                 GetNormProjParm(SRS_PP_FALSE_EASTING,0.0), 
     1230                 GetNormProjParm(SRS_PP_FALSE_NORTHING,0.0) ); 
     1231    } 
     1232 
    12041233    else if( EQUAL(pszProjection,SRS_PT_EQUIRECTANGULAR) ) 
    12051234    { 
     
    12101239                 GetNormProjParm(SRS_PP_FALSE_EASTING,0.0), 
    12111240                 GetNormProjParm(SRS_PP_FALSE_NORTHING,0.0) ); 
     1241    } 
     1242 
     1243    else if( EQUAL(pszProjection,SRS_PT_GAUSSLABORDEREUNION) ) 
     1244    { 
     1245      sprintf( szProj4+strlen(szProj4), 
     1246               "+proj=glabsgm +lat_0=%.16g +lon_0=%.16g" 
     1247               " +k_0=%.16g +x_0=%.16g +y_0=%.16g ", 
     1248               GetNormProjParm(SRS_PP_LATITUDE_OF_ORIGIN,-21.116666667), 
     1249               GetNormProjParm(SRS_PP_CENTRAL_MERIDIAN,55.53333333309), 
     1250               GetNormProjParm(SRS_PP_SCALE_FACTOR,1.0), 
     1251               GetNormProjParm(SRS_PP_FALSE_EASTING,160000.000), 
     1252               GetNormProjParm(SRS_PP_FALSE_NORTHING,50000.000) ); 
    12121253    } 
    12131254 
  • trunk/gdal/ogr/ogrspatialreference.cpp

    r13427 r13482  
    31733173 
    31743174/************************************************************************/ 
     3175/*                         SetEquidistantCylindricalSphere()            */ 
     3176/************************************************************************/ 
     3177 
     3178OGRErr OGRSpatialReference::SetEquidistantCylindricalSphere( 
     3179                                   double dfCenterLat, double dfCenterLong, 
     3180                                   double dfScale, 
     3181                                   double dfFalseEasting, 
     3182                                   double dfFalseNorthing ) 
     3183 
     3184{ 
     3185    SetProjection( SRS_PT_EQUIDISTANT_CYLINDRICAL_SHERE ); 
     3186    SetNormProjParm( SRS_PP_LATITUDE_OF_ORIGIN, dfCenterLat ); 
     3187    SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN, dfCenterLong ); 
     3188    SetNormProjParm( SRS_PP_SCALE_FACTOR, dfScale ); 
     3189    SetNormProjParm( SRS_PP_FALSE_EASTING, dfFalseEasting ); 
     3190    SetNormProjParm( SRS_PP_FALSE_NORTHING, dfFalseNorthing ); 
     3191 
     3192    return OGRERR_NONE; 
     3193} 
     3194 
     3195/************************************************************************/ 
     3196/*                       OSRSetEquidistantCylindricalSphere()           */ 
     3197/************************************************************************/ 
     3198 
     3199OGRErr OSRSetEquidistantCylindricalSphere( OGRSpatialReferenceH hSRS, 
     3200                                  double dfCenterLat, double dfCenterLong, 
     3201                                  double dfScale, 
     3202                                  double dfFalseEasting, 
     3203                                  double dfFalseNorthing ) 
     3204 
     3205{ 
     3206    return ((OGRSpatialReference *) hSRS)->SetEquidistantCylindricalSphere( 
     3207        dfCenterLat, dfCenterLong, dfScale, 
     3208        dfFalseEasting, dfFalseNorthing ); 
     3209} 
     3210 
     3211/************************************************************************/ 
    31753212/*                         SetEquirectangular()                         */ 
    31763213/************************************************************************/ 
     
    33103347    return ((OGRSpatialReference *) hSRS)->SetGEOS(  
    33113348        dfCentralMeridian, dfSatelliteHeight, 
     3349        dfFalseEasting, dfFalseNorthing ); 
     3350} 
     3351 
     3352/************************************************************************/ 
     3353/*                         SetGaussLabordeReunion()                     */ 
     3354/************************************************************************/ 
     3355 
     3356OGRErr OGRSpatialReference::SetGaussLabordeReunion( 
     3357                                   double dfCenterLat, double dfCenterLong, 
     3358                                   double dfScale, 
     3359                                   double dfFalseEasting, 
     3360                                   double dfFalseNorthing ) 
     3361 
     3362{ 
     3363    SetProjection( SRS_PT_GAUSSLABORDEREUNION ); 
     3364    SetNormProjParm( SRS_PP_LATITUDE_OF_ORIGIN, dfCenterLat ); 
     3365    SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN, dfCenterLong ); 
     3366    SetNormProjParm( SRS_PP_SCALE_FACTOR, dfScale ); 
     3367    SetNormProjParm( SRS_PP_FALSE_EASTING, dfFalseEasting ); 
     3368    SetNormProjParm( SRS_PP_FALSE_NORTHING, dfFalseNorthing ); 
     3369 
     3370    return OGRERR_NONE; 
     3371} 
     3372 
     3373/************************************************************************/ 
     3374/*                       OSRSetGaussLabordeReunion()                    */ 
     3375/************************************************************************/ 
     3376 
     3377OGRErr OSRSetGaussLabordeReunion( OGRSpatialReferenceH hSRS, 
     3378                                  double dfCenterLat, double dfCenterLong, 
     3379                                  double dfScale, 
     3380                                  double dfFalseEasting, 
     3381                                  double dfFalseNorthing ) 
     3382 
     3383{ 
     3384    return ((OGRSpatialReference *) hSRS)->SetGaussLabordeReunion( 
     3385        dfCenterLat, dfCenterLong, dfScale, 
    33123386        dfFalseEasting, dfFalseNorthing ); 
    33133387} 
  • trunk/gdal/swig/include/osr.i

    r13337 r13482  
    5555%constant char *SRS_PT_ECKERT_VI                = SRS_PT_ECKERT_VI; 
    5656%constant char *SRS_PT_EQUIDISTANT_CONIC        = SRS_PT_EQUIDISTANT_CONIC; 
     57%constant char *SRS_PT_EQUIDISTANT_CYLINDRICAL_SHERE = SRS_PT_EQUIDISTANT_CYLINDRICAL_SHERE; 
    5758%constant char *SRS_PT_EQUIRECTANGULAR          = SRS_PT_EQUIRECTANGULAR; 
    5859%constant char *SRS_PT_GALL_STEREOGRAPHIC       = SRS_PT_GALL_STEREOGRAPHIC; 
     60%constant char *SRS_PT_GAUSSLABORDEREUNION      = SRS_PT_GAUSSLABORDEREUNION; 
    5961%constant char *SRS_PT_GNOMONIC                 = SRS_PT_GNOMONIC; 
    6062%constant char *SRS_PT_GOODE_HOMOLOSINE         = SRS_PT_GOODE_HOMOLOSINE; 
     
    447449  } 
    448450 
     451%feature( "kwargs" ) SetEquidistantCylindricalSphere; 
     452  OGRErr SetEquidistantCylindricalSphere( double clat, double clong, double sc, double fe, double fn ) { 
     453    return OSRSetEquidistantCylindricalSphere( self, clat, clong, sc, fe, fn ); 
     454  } 
     455 
     456%feature( "kwargs" ) SetGaussLabordeReunion; 
     457  OGRErr SetGaussLabordeReunion( double clat, double clong, double sc, double fe, double fn ) { 
     458    return OSRSetGaussLabordeReunion( self, clat, clong, sc, fe, fn ); 
     459  } 
     460 
    449461%feature( "kwargs" ) SetGS; 
    450462  OGRErr SetGS( double cm,