Changeset 11450

Show
Ignore:
Timestamp:
05/10/07 11:00:39 (2 years ago)
Author:
warmerdam
Message:

upgraded to include several additional projections (from trunk)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/warmerdam/1.4-esri/gdal/frmts/hfa/hfadataset.cpp

    r11315 r11450  
    5050#  define D2R   (PI/180) 
    5151#endif 
     52 
     53#define SRS_PT_ECKERT_I         "Eckert_I" 
     54#define SRS_PT_ECKERT_II        "Eckert_II" 
     55#define SRS_PT_ECKERT_III       "Eckert_III" 
     56#define SRS_PT_ECKERT_IV        "Eckert_IV" 
     57#define SRS_PT_ECKERT_V         "Eckert_V" 
     58#define SRS_PT_ECKERT_VI        "Eckert_VI" 
    5259 
    5360static const char *apszDatumMap[] = { 
     
    15971604        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
    15981605    } 
     1606    else if( EQUAL(pszProjName,SRS_PT_ECKERT_I) ) 
     1607    { 
     1608        sPro.proNumber = EPRJ_ECKERT_I; 
     1609        sPro.proName = "Eckert I"; 
     1610        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1611        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1612        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1613    } 
     1614    else if( EQUAL(pszProjName,SRS_PT_ECKERT_II) ) 
     1615    { 
     1616        sPro.proNumber = EPRJ_ECKERT_II; 
     1617        sPro.proName = "Eckert II"; 
     1618        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1619        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1620        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1621    } 
     1622    else if( EQUAL(pszProjName,SRS_PT_ECKERT_III) ) 
     1623    { 
     1624        sPro.proNumber = EPRJ_ECKERT_III; 
     1625        sPro.proName = "Eckert III"; 
     1626        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1627        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1628        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1629    } 
    15991630    else if( EQUAL(pszProjName,SRS_PT_ECKERT_IV) ) 
    16001631    { 
    16011632        sPro.proNumber = EPRJ_ECKERT_IV; 
    16021633        sPro.proName = "Eckert IV"; 
     1634        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1635        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1636        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1637    } 
     1638    else if( EQUAL(pszProjName,SRS_PT_ECKERT_VI) ) 
     1639    { 
     1640        sPro.proNumber = EPRJ_ECKERT_V; 
     1641        sPro.proName = "Eckert V"; 
    16031642        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
    16041643        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     
    16361675        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
    16371676        sPro.proParams[2] = oSRS.GetProjParm(SRS_PP_STANDARD_PARALLEL_1)*D2R; 
     1677        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1678        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1679    } 
     1680    else if( EQUAL(pszProjName,"Loximuthal") ) 
     1681    { 
     1682        sPro.proNumber = EPRJ_LOXIMUTHAL; 
     1683        sPro.proName = "Loximuthal"; 
     1684        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1685        sPro.proParams[5] = oSRS.GetProjParm("central_parallel")*D2R; 
     1686        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1687        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1688    } 
     1689    else if( EQUAL(pszProjName,"Quartic_Authalic") ) 
     1690    { 
     1691        sPro.proNumber = EPRJ_QUARTIC_AUTHALIC; 
     1692        sPro.proName = "Quartic Authalic"; 
     1693        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1694        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1695        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1696    } 
     1697    else if( EQUAL(pszProjName,"Winkel_I") ) 
     1698    { 
     1699        sPro.proNumber = EPRJ_WINKEL_I; 
     1700        sPro.proName = "Winkel I"; 
     1701        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1702        sPro.proParams[2] = oSRS.GetProjParm(SRS_PP_STANDARD_PARALLEL_1)*D2R; 
     1703        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1704        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1705    } 
     1706    else if( EQUAL(pszProjName,"Winkel_II") ) 
     1707    { 
     1708        sPro.proNumber = EPRJ_WINKEL_II; 
     1709        sPro.proName = "Winkel II"; 
     1710        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1711        sPro.proParams[2] = oSRS.GetProjParm(SRS_PP_STANDARD_PARALLEL_1)*D2R; 
     1712        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1713        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1714    } 
     1715    else if( EQUAL(pszProjName,"Winkel_II") ) 
     1716    { 
     1717        sPro.proNumber = EPRJ_WINKEL_II; 
     1718        sPro.proName = "Winkel II"; 
     1719        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
     1720        sPro.proParams[2] = oSRS.GetProjParm(SRS_PP_STANDARD_PARALLEL_1)*D2R; 
     1721        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
     1722        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     1723    } 
     1724    else if( EQUAL(pszProjName,"Behrmann") ) 
     1725    { 
     1726        sPro.proNumber = EPRJ_BEHRMANN; 
     1727        sPro.proName = "Behrmann"; 
     1728        sPro.proParams[4] = oSRS.GetProjParm(SRS_PP_CENTRAL_MERIDIAN)*D2R; 
    16381729        sPro.proParams[6] = oSRS.GetProjParm(SRS_PP_FALSE_EASTING); 
    16391730        sPro.proParams[7] = oSRS.GetProjParm(SRS_PP_FALSE_NORTHING); 
     
    20132104        break; 
    20142105 
     2106      case EPRJ_PLATE_CARREE: 
    20152107      case EPRJ_EQUIRECTANGULAR: 
    20162108        oSRS.SetEquirectangular( 
    20172109            psPro->proParams[5]*R2D, psPro->proParams[4]*R2D, 
     2110            psPro->proParams[6], psPro->proParams[7] ); 
     2111        break; 
     2112 
     2113      case EPRJ_EQUIDISTANT_CYLINDRICAL: 
     2114        oSRS.SetEquirectangular( 
     2115            psPro->proParams[2]*R2D, psPro->proParams[4]*R2D, 
    20182116            psPro->proParams[6], psPro->proParams[7] ); 
    20192117        break; 
     
    20472145        break; 
    20482146 
    2049       case EPRJ_ECKERT_IV: 
    2050         oSRS.SetEckertIV( psPro->proParams[4]*R2D, 
    2051                           psPro->proParams[6], psPro->proParams[7] ); 
    2052         break; 
    2053  
    2054       case EPRJ_ECKERT_VI: 
    2055         oSRS.SetEckertVI( psPro->proParams[4]*R2D, 
    2056                           psPro->proParams[6], psPro->proParams[7] ); 
    2057         break; 
    2058  
    20592147      case EPRJ_GALL_STEREOGRAPHIC: 
    20602148        oSRS.SetGS( psPro->proParams[4]*R2D, 
    20612149                    psPro->proParams[6], psPro->proParams[7] ); 
    20622150        break; 
     2151 
     2152      case EPRJ_ECKERT_I: 
     2153      { 
     2154          oSRS.SetProjection( SRS_PT_ECKERT_I ); 
     2155          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2156                                psPro->proParams[4]*R2D ); 
     2157          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING,  
     2158                                psPro->proParams[6] ); 
     2159          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING,  
     2160                                psPro->proParams[7] ); 
     2161      } 
     2162      break; 
     2163 
     2164      case EPRJ_ECKERT_II: 
     2165      { 
     2166          oSRS.SetProjection( SRS_PT_ECKERT_II ); 
     2167          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2168                                psPro->proParams[4]*R2D ); 
     2169          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING,  
     2170                                psPro->proParams[6] ); 
     2171          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING,  
     2172                                psPro->proParams[7] ); 
     2173      } 
     2174      break; 
     2175 
     2176      case EPRJ_ECKERT_III: 
     2177      { 
     2178          oSRS.SetProjection( SRS_PT_ECKERT_III ); 
     2179          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2180                                psPro->proParams[4]*R2D ); 
     2181          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING,  
     2182                                psPro->proParams[6] ); 
     2183          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING,  
     2184                                psPro->proParams[7] ); 
     2185      } 
     2186      break; 
     2187 
     2188      case EPRJ_ECKERT_IV: 
     2189      { 
     2190          oSRS.SetProjection( SRS_PT_ECKERT_IV ); 
     2191          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2192                                psPro->proParams[4]*R2D ); 
     2193          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING,  
     2194                                psPro->proParams[6] ); 
     2195          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING,  
     2196                                psPro->proParams[7] ); 
     2197      } 
     2198      break; 
     2199 
     2200      case EPRJ_ECKERT_V: 
     2201      { 
     2202          oSRS.SetProjection( SRS_PT_ECKERT_V ); 
     2203          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2204                                psPro->proParams[4]*R2D ); 
     2205          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING,  
     2206                                psPro->proParams[6] ); 
     2207          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING,  
     2208                                psPro->proParams[7] ); 
     2209      } 
     2210      break; 
     2211 
     2212      case EPRJ_ECKERT_VI: 
     2213      { 
     2214          oSRS.SetProjection( SRS_PT_ECKERT_VI ); 
     2215          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2216                                psPro->proParams[4]*R2D ); 
     2217          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING,  
     2218                                psPro->proParams[6] ); 
     2219          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING,  
     2220                                psPro->proParams[7] ); 
     2221      } 
     2222      break; 
    20632223 
    20642224      case EPRJ_CASSINI: 
     
    20772237                       psPro->proParams[6], psPro->proParams[7] ); 
    20782238        break; 
     2239 
     2240      case EPRJ_LOXIMUTHAL: 
     2241      { 
     2242          oSRS.SetProjection( "Loximuthal" ); 
     2243          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2244                           psPro->proParams[4] * R2D ); 
     2245          oSRS.SetNormProjParm( "central_parallel",  
     2246                           psPro->proParams[5] * R2D ); 
     2247          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING, psPro->proParams[6] ); 
     2248          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING, psPro->proParams[6] ); 
     2249      } 
     2250      break; 
     2251 
     2252      case EPRJ_QUARTIC_AUTHALIC: 
     2253      { 
     2254          oSRS.SetProjection( "Quartic_Authalic" ); 
     2255          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2256                           psPro->proParams[4] * R2D ); 
     2257          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING, psPro->proParams[6] ); 
     2258          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING, psPro->proParams[6] ); 
     2259      } 
     2260      break; 
     2261 
     2262      case EPRJ_WINKEL_I: 
     2263      { 
     2264          oSRS.SetProjection( "Winkel_I" ); 
     2265          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2266                           psPro->proParams[4] * R2D ); 
     2267          oSRS.SetNormProjParm( SRS_PP_STANDARD_PARALLEL_1,  
     2268                           psPro->proParams[2] * R2D ); 
     2269          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING, psPro->proParams[6] ); 
     2270          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING, psPro->proParams[6] ); 
     2271      } 
     2272      break; 
     2273 
     2274      case EPRJ_WINKEL_II: 
     2275      { 
     2276          oSRS.SetProjection( "Winkel_II" ); 
     2277          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2278                           psPro->proParams[4] * R2D ); 
     2279          oSRS.SetNormProjParm( SRS_PP_STANDARD_PARALLEL_1,  
     2280                           psPro->proParams[2] * R2D ); 
     2281          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING, psPro->proParams[6] ); 
     2282          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING, psPro->proParams[6] ); 
     2283      } 
     2284      break; 
     2285 
     2286      case EPRJ_BEHRMANN: 
     2287      { 
     2288          oSRS.SetProjection( "Behrmann" ); 
     2289          oSRS.SetNormProjParm( SRS_PP_CENTRAL_MERIDIAN,  
     2290                           psPro->proParams[4] * R2D ); 
     2291          oSRS.SetNormProjParm( SRS_PP_FALSE_EASTING, psPro->proParams[6] ); 
     2292          oSRS.SetNormProjParm( SRS_PP_FALSE_NORTHING, psPro->proParams[6] ); 
     2293      } 
     2294      break; 
    20792295 
    20802296      default: