Ticket #2134: gdal-1.5.0-eqr-glabsgm.patch

File gdal-1.5.0-eqr-glabsgm.patch, 11.7 kB (added by dgrichard, 4 months ago)

Support for eqr and glabsgm new proposed PROJ.4 projections

  • gdal-1.5.0/ogr/ogrspatialreference.cpp

    old new  
    31663166} 
    31673167 
    31683168/************************************************************************/ 
     3169/*                         SetEquidistantCylindricalSphere()            */ 
     3170/************************************************************************/ 
     3171 
     3172OGRErr OGRSpatialReference::SetEquidistantCylindricalSphere( 
     3173                                   double dfCenterLat, double dfCenterLong, 
     3174                                   double dfScale, 
     3175                                   double dfFalseEasting, 
     3176                                   double dfFalseNorthing ) 
     3177 
     3178{ 
     3179    SetProjection( SRS_PT_EQUIDISTANT_CYLINDRICAL_SHERE ); 
     3180    SetNormProjParm( SRS_PP_LATITUDE_OF_ORIGIN, dfCenterLat ); 
     3181    SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN, dfCenterLong ); 
     3182    SetNormProjParm( SRS_PP_SCALE_FACTOR, dfScale ); 
     3183    SetNormProjParm( SRS_PP_FALSE_EASTING, dfFalseEasting ); 
     3184    SetNormProjParm( SRS_PP_FALSE_NORTHING, dfFalseNorthing ); 
     3185 
     3186    return OGRERR_NONE; 
     3187} 
     3188 
     3189/************************************************************************/ 
     3190/*                       OSRSetEquidistantCylindricalSphere()           */ 
     3191/************************************************************************/ 
     3192 
     3193OGRErr OSRSetEquidistantCylindricalSphere( OGRSpatialReferenceH hSRS, 
     3194                                  double dfCenterLat, double dfCenterLong, 
     3195                                  double dfScale, 
     3196                                  double dfFalseEasting, 
     3197                                  double dfFalseNorthing ) 
     3198 
     3199{ 
     3200    return ((OGRSpatialReference *) hSRS)->SetEquidistantCylindricalSphere( 
     3201        dfCenterLat, dfCenterLong, dfScale, 
     3202        dfFalseEasting, dfFalseNorthing ); 
     3203} 
     3204 
     3205/************************************************************************/ 
    31693206/*                         SetEquirectangular()                         */ 
    31703207/************************************************************************/ 
    31713208 
     
    33073344} 
    33083345 
    33093346/************************************************************************/ 
     3347/*                         SetGaussLabordeReunion()                     */ 
     3348/************************************************************************/ 
     3349 
     3350OGRErr OGRSpatialReference::SetGaussLabordeReunion( 
     3351                                   double dfCenterLat, double dfCenterLong, 
     3352                                   double dfScale, 
     3353                                   double dfFalseEasting, 
     3354                                   double dfFalseNorthing ) 
     3355 
     3356{ 
     3357    SetProjection( SRS_PT_GAUSSLABORDEREUNION ); 
     3358    SetNormProjParm( SRS_PP_LATITUDE_OF_ORIGIN, dfCenterLat ); 
     3359    SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN, dfCenterLong ); 
     3360    SetNormProjParm( SRS_PP_SCALE_FACTOR, dfScale ); 
     3361    SetNormProjParm( SRS_PP_FALSE_EASTING, dfFalseEasting ); 
     3362    SetNormProjParm( SRS_PP_FALSE_NORTHING, dfFalseNorthing ); 
     3363 
     3364    return OGRERR_NONE; 
     3365} 
     3366 
     3367/************************************************************************/ 
     3368/*                       OSRSetGaussLabordeReunion()                    */ 
     3369/************************************************************************/ 
     3370 
     3371OGRErr OSRSetGaussLabordeReunion( OGRSpatialReferenceH hSRS, 
     3372                                  double dfCenterLat, double dfCenterLong, 
     3373                                  double dfScale, 
     3374                                  double dfFalseEasting, 
     3375                                  double dfFalseNorthing ) 
     3376 
     3377{ 
     3378    return ((OGRSpatialReference *) hSRS)->SetGaussLabordeReunion( 
     3379        dfCenterLat, dfCenterLong, dfScale, 
     3380        dfFalseEasting, dfFalseNorthing ); 
     3381} 
     3382 
     3383/************************************************************************/ 
    33103384/*                            SetGnomonic()                             */ 
    33113385/************************************************************************/ 
    33123386 
  • gdal-1.5.0/ogr/ogr_spatialref.h

    old new  
    306306    OGRErr      SetEckertVI( double dfCentralMeridian, 
    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, 
    311316                            double dfFalseEasting, double dfFalseNorthing ); 
     
    321326    /** Gall Stereograpic */ 
    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, 
    327337                            double dfFalseEasting, double dfFalseNorthing ); 
  • gdal-1.5.0/ogr/ogr_srs_api.h

    old new  
    9494#define SRS_PT_ECKERT_IV        "Eckert_IV" 
    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" 
    103110#define SRS_PT_HOTINE_OBLIQUE_MERCATOR                                  \ 
  • gdal-1.5.0/ogr/ogr_srs_proj4.cpp

    old new  
    486486                            OSR_GDV( papszNV, "y_0", 0.0 ) ); 
    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    { 
    491509        SetGnomonic( OSR_GDV( papszNV, "lat_0", 0.0 ),  
     
    11511169                     GetNormProjParm(SRS_PP_FALSE_NORTHING,0.0) ); 
    11521170    } 
    11531171 
     1172    else if( EQUAL(pszProjection,SRS_PT_EQUIDISTANT_CYLINDRICAL_SHERE) ) 
     1173    { 
     1174        sprintf( szProj4+strlen(szProj4), 
     1175                 "+proj=eqr +lat_ts=%.16g +lon_0=%.16g +k_0=%.16g +x_0=%.16g +y_0=%.16g ", 
     1176                 GetNormProjParm(SRS_PP_LATITUDE_OF_ORIGIN,0.0), 
     1177                 GetNormProjParm(SRS_PP_CENTRAL_MERIDIAN,0.0), 
     1178                 GetNormProjParm(SRS_PP_SCALE_FACTOR,6378137.0), 
     1179                 GetNormProjParm(SRS_PP_FALSE_EASTING,0.0), 
     1180                 GetNormProjParm(SRS_PP_FALSE_NORTHING,0.0) ); 
     1181    } 
     1182 
    11541183    else if( EQUAL(pszProjection,SRS_PT_EQUIRECTANGULAR) ) 
    11551184    { 
    11561185        sprintf( szProj4+strlen(szProj4), 
     
    11611190                 GetNormProjParm(SRS_PP_FALSE_NORTHING,0.0) ); 
    11621191    } 
    11631192 
     1193    else if( EQUAL(pszProjection,SRS_PT_GAUSSLABORDEREUNION) ) 
     1194    { 
     1195      sprintf( szProj4+strlen(szProj4), 
     1196               "+proj=glabsgm +lat_0=%.16g +lon_0=%.16g" 
     1197               " +k_0=%.16g +x_0=%.16g +y_0=%.16g ", 
     1198               GetNormProjParm(SRS_PP_LATITUDE_OF_ORIGIN,-21.116666667), 
     1199               GetNormProjParm(SRS_PP_CENTRAL_MERIDIAN,55.53333333309), 
     1200               GetNormProjParm(SRS_PP_SCALE_FACTOR,1.0), 
     1201               GetNormProjParm(SRS_PP_FALSE_EASTING,160000.000), 
     1202               GetNormProjParm(SRS_PP_FALSE_NORTHING,50000.000) ); 
     1203    } 
     1204 
    11641205    else if( EQUAL(pszProjection,SRS_PT_GNOMONIC) ) 
    11651206    { 
    11661207        sprintf( szProj4+strlen(szProj4), 
  • gdal-1.5.0/swig/include/osr.i

    old new  
    5454%constant char *SRS_PT_ECKERT_IV                = SRS_PT_ECKERT_IV; 
    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; 
    6163%constant char *SRS_PT_HOTINE_OBLIQUE_MERCATOR  = SRS_PT_HOTINE_OBLIQUE_MERCATOR; 
     
    446448                                  fe, fn ); 
    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, 
    451463              double fe, double fn ) { 
  • gdal-1.5.0/wince/msvc80/gdalce_common.vsprops

    old new  
    77        <Tool 
    88                Name="VCCLCompilerTool" 
    99                AdditionalIncludeDirectories="$(WCELIBCEX_DIR)" 
    10                 PreprocessorDefinitions="OGR_ENABLED;SHAPE_ENABLED;FRMT_aaigrid;FRMT_dted;FRMT_gtiff" 
     10                PreprocessorDefinitions="OGR_ENABLED;SHAPE_ENABLED;GEOCONCEPT_ENABLED;FRMT_aaigrid;FRMT_dted;FRMT_gtiff" 
    1111        /> 
    1212        <Tool 
    1313                Name="VCPreBuildEventTool"