Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

ogr_srs_api.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  * $Id: ogr_srs_api.h,v 1.37 2003/09/09 07:49:52 dron Exp $
00003  *
00004  * Project:  OpenGIS Simple Features Reference Implementation
00005  * Purpose:  C API and constant declarations for OGR Spatial References.
00006  * Author:   Frank Warmerdam, warmerda@home.com
00007  *
00008  ******************************************************************************
00009  * Copyright (c) 2000, Frank Warmerdam
00010  *
00011  * Permission is hereby granted, free of charge, to any person obtaining a
00012  * copy of this software and associated documentation files (the "Software"),
00013  * to deal in the Software without restriction, including without limitation
00014  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00015  * and/or sell copies of the Software, and to permit persons to whom the
00016  * Software is furnished to do so, subject to the following conditions:
00017  *
00018  * The above copyright notice and this permission notice shall be included
00019  * in all copies or substantial portions of the Software.
00020  *
00021  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00022  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00023  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00024  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00025  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00026  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00027  * DEALINGS IN THE SOFTWARE.
00028  ******************************************************************************
00029  *
00030  * $Log: ogr_srs_api.h,v $
00031  * Revision 1.37  2003/09/09 07:49:52  dron
00032  * Added OSRExportToPCI().
00033  *
00034  * Revision 1.36  2003/08/31 14:51:01  dron
00035  * Added OSRImportFromPCI().
00036  *
00037  * Revision 1.35  2003/08/18 13:26:01  warmerda
00038  * added SetTMVariant() and related definitions
00039  *
00040  * Revision 1.34  2003/06/21 23:24:36  warmerda
00041  * added Set/Get TOWGS84 calls
00042  *
00043  * Revision 1.33  2003/06/19 17:10:26  warmerda
00044  * a couple fixes in last commit
00045  *
00046  * Revision 1.32  2003/06/18 18:24:17  warmerda
00047  * added projection specific set methods to C API
00048  *
00049  * Revision 1.31  2003/06/10 09:31:12  dron
00050  * Added OSRSetAngularUnits() and OSRGetAngularUnits().
00051  *
00052  * Revision 1.30  2003/05/30 15:39:53  warmerda
00053  * Added override units capability for SetStatePlane()
00054  *
00055  * Revision 1.29  2003/03/21 22:15:11  warmerda
00056  * added C XML import/export entry points
00057  *
00058  * Revision 1.28  2003/03/12 14:29:34  warmerda
00059  * Rename OGRAxisOrientation and OGRDatumType values to avoid conflicts with
00060  * the real OGC definitions in applications such as Cadcorps.
00061  *
00062  * Revision 1.27  2003/02/25 04:53:38  warmerda
00063  * added OSRCopyGeogCSFrom
00064  *
00065  * Revision 1.26  2003/02/06 04:53:12  warmerda
00066  * added Fixup() method
00067  *
00068  * Revision 1.25  2003/01/08 18:14:28  warmerda
00069  * added FixupOrdering()
00070  *
00071  * Revision 1.24  2002/12/16 17:07:13  warmerda
00072  * added NormProjParm functions, and OSRGetPrimeMeridian
00073  *
00074  * Revision 1.23  2002/12/14 22:59:14  warmerda
00075  * added Krovak in ESRI compatible way
00076  *
00077  * Revision 1.22  2002/12/09 18:55:07  warmerda
00078  * moved DMS stuff to gdal/port
00079  *
00080  * Revision 1.21  2002/12/09 16:11:53  warmerda
00081  * added DMS translation
00082  *
00083  * Revision 1.20  2002/11/25 16:12:54  warmerda
00084  * added GetAuthorityCode/Name
00085  *
00086  * Revision 1.19  2002/09/26 18:13:25  warmerda
00087  * avoid double def
00088  *
00089  * Revision 1.18  2002/06/11 18:02:03  warmerda
00090  * add PROJ.4 normalization and EPSG support
00091  *
00092  * Revision 1.17  2001/10/11 19:27:12  warmerda
00093  * upgraded validation infrastructure
00094  *
00095  * Revision 1.16  2001/10/10 20:42:43  warmerda
00096  * added ESRI WKT morphing support
00097  *
00098  * Revision 1.15  2001/09/21 16:21:02  warmerda
00099  * added Clear(), and SetFromUserInput() methods
00100  *
00101  * Revision 1.14  2000/11/09 06:21:32  warmerda
00102  * added limited ESRI prj support
00103  *
00104  * Revision 1.13  2000/10/20 04:19:38  warmerda
00105  * added setstateplane
00106  *
00107  * Revision 1.12  2000/10/16 21:26:07  warmerda
00108  * added some level of LOCAL_CS support
00109  *
00110  * Revision 1.11  2000/09/01 20:58:01  warmerda
00111  * added CPL_DLL for entry points
00112  *
00113  * Revision 1.10  2000/08/30 20:06:14  warmerda
00114  * added projection method list functions
00115  *
00116  * Revision 1.9  2000/08/28 20:13:23  warmerda
00117  * added importFromProj4
00118  *
00119  * Revision 1.8  2000/07/11 01:02:06  warmerda
00120  * added ExportToProj4()
00121  *
00122  * Revision 1.7  2000/07/09 20:48:02  warmerda
00123  * added exportToPrettyWkt
00124  *
00125  * Revision 1.6  2000/05/30 22:45:44  warmerda
00126  * added OSRCloneGeogCS()
00127  *
00128  * Revision 1.5  2000/04/26 18:25:56  warmerda
00129  * added missing CPL_DLL attributes
00130  *
00131  * Revision 1.4  2000/03/22 01:09:43  warmerda
00132  * added SetProjCS and SetWellKnownTextCS
00133  *
00134  * Revision 1.3  2000/03/20 23:33:51  warmerda
00135  * updated docs a bit
00136  *
00137  * Revision 1.2  2000/03/20 22:39:31  warmerda
00138  * Added C API.
00139  *
00140  * Revision 1.1  2000/03/16 19:04:14  warmerda
00141  * New
00142  *
00143  */
00144 
00145 #ifndef _OGR_SRS_API_H_INCLUDED
00146 #define _OGR_SRS_API_H_INCLUDED
00147 
00148 #include "ogr_core.h"
00149 
00150 CPL_C_START
00151 
00160 /* -------------------------------------------------------------------- */
00161 /*      Axis orientations (corresponds to CS_AxisOrientationEnum).      */
00162 /* -------------------------------------------------------------------- */
00163 typedef enum {
00164     OAO_Other=0,
00165     OAO_North=1,
00166     OAO_South=2,
00167     OAO_East=3,
00168     OAO_West=4,
00169     OAO_Up=5,
00170     OAO_Down=6
00171 } OGRAxisOrientation;
00172     
00173 /* -------------------------------------------------------------------- */
00174 /*      Datum types (corresponds to CS_DatumType).                      */
00175 /* -------------------------------------------------------------------- */
00176 
00177 typedef enum {
00178     ODT_HD_Min=1000,
00179     ODT_HD_Other=1000,
00180     ODT_HD_Classic=1001,
00181     ODT_HD_Geocentric=1002,
00182     ODT_HD_Max=1999,
00183     ODT_VD_Min=2000,
00184     ODT_VD_Other=2000,
00185     ODT_VD_Orthometric=2001,
00186     ODT_VD_Ellipsoidal=2002,
00187     ODT_VD_AltitudeBarometric=2003,
00188     ODT_VD_Normal=2004,
00189     ODT_VD_GeoidModelDerived=2005,
00190     ODT_VD_Depth=2006,
00191     ODT_VD_Max=2999,
00192     ODT_LD_Min=10000,
00193     ODT_LD_Max=32767
00194 } OGRDatumType; 
00195 
00196 /* ==================================================================== */
00197 /*      Some "standard" strings.                                        */
00198 /* ==================================================================== */
00199 
00200 #define SRS_PT_ALBERS_CONIC_EQUAL_AREA                                  \
00201                                 "Albers_Conic_Equal_Area"
00202 #define SRS_PT_AZIMUTHAL_EQUIDISTANT "Azimuthal_Equidistant"
00203 #define SRS_PT_CASSINI_SOLDNER  "Cassini_Soldner"
00204 #define SRS_PT_CYLINDRICAL_EQUAL_AREA "Cylindrical_Equal_Area"
00205 #define SRS_PT_ECKERT_IV        "Eckert_IV"
00206 #define SRS_PT_ECKERT_VI        "Eckert_VI"
00207 #define SRS_PT_EQUIDISTANT_CONIC "Equidistant_Conic"
00208 #define SRS_PT_EQUIRECTANGULAR  "Equirectangular"
00209 #define SRS_PT_GALL_STEREOGRAPHIC "Gall_Stereographic"
00210 #define SRS_PT_GNOMONIC         "Gnomonic"
00211 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR                                  \
00212                                 "Hotine_Oblique_Mercator"
00213 #define SRS_PT_LABORDE_OBLIQUE_MERCATOR                                 \
00214                                 "Laborde_Oblique_Mercator"
00215 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP                              \
00216                                 "Lambert_Conformal_Conic_1SP"
00217 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP                              \
00218                                 "Lambert_Conformal_Conic_2SP"
00219 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM                      \
00220                                 "Lambert_Conformal_Conic_2SP_Belgium)"
00221 #define SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA                     \
00222                                 "Lambert_Azimuthal_Equal_Area"
00223 #define SRS_PT_MERCATOR_1SP     "Mercator_1SP"
00224 #define SRS_PT_MERCATOR_2SP     "Mercator_2SP"
00225 #define SRS_PT_MILLER_CYLINDRICAL "Miller_Cylindrical"
00226 #define SRS_PT_MOLLWEIDE        "Mollweide"
00227 #define SRS_PT_NEW_ZEALAND_MAP_GRID                                     \
00228                                 "New_Zealand_Map_Grid"
00229 #define SRS_PT_OBLIQUE_STEREOGRAPHIC                                    \
00230                                 "Oblique_Stereographic"
00231 #define SRS_PT_ORTHOGRAPHIC     "Orthographic"
00232 #define SRS_PT_POLAR_STEREOGRAPHIC                                      \
00233                                 "Polar_Stereographic"
00234 #define SRS_PT_POLYCONIC        "Polyconic"
00235 #define SRS_PT_ROBINSON         "Robinson"
00236 #define SRS_PT_SINUSOIDAL       "Sinusoidal"
00237 #define SRS_PT_STEREOGRAPHIC    "Stereographic"
00238 #define SRS_PT_SWISS_OBLIQUE_CYLINDRICAL                                \
00239                                 "Swiss_Oblique_Cylindrical"
00240 #define SRS_PT_TRANSVERSE_MERCATOR                                      \
00241                                 "Transverse_Mercator"
00242 #define SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED                       \
00243                                 "Transverse_Mercator_South_Orientated"
00244 
00245 /* special mapinfo variants on Transverse Mercator */
00246 #define SRS_PT_TRANSVERSE_MERCATOR_MI_22 \
00247                                 "Transverse_Mercator_MapInfo_22"
00248 #define SRS_PT_TRANSVERSE_MERCATOR_MI_23 \
00249                                 "Transverse_Mercator_MapInfo_23"
00250 #define SRS_PT_TRANSVERSE_MERCATOR_MI_24 \
00251                                 "Transverse_Mercator_MapInfo_24"
00252 #define SRS_PT_TRANSVERSE_MERCATOR_MI_25 \
00253                                 "Transverse_Mercator_MapInfo_25"
00254 
00255 #define SRS_PT_TUNISIA_MINING_GRID                                      \
00256                                 "Tunisia_Mining_Grid"
00257 #define SRS_PT_VANDERGRINTEN    "VanDerGrinten"
00258 #define SRS_PT_KROVAK           "Krovak"
00259 
00260                                 
00261 
00262 #define SRS_PP_CENTRAL_MERIDIAN         "central_meridian"
00263 #define SRS_PP_SCALE_FACTOR             "scale_factor"
00264 #define SRS_PP_STANDARD_PARALLEL_1      "standard_parallel_1"
00265 #define SRS_PP_STANDARD_PARALLEL_2      "standard_parallel_2"
00266 #define SRS_PP_PSEUDO_STD_PARALLEL_1    "pseudo_standard_parallel_1"
00267 #define SRS_PP_LONGITUDE_OF_CENTER      "longitude_of_center"
00268 #define SRS_PP_LATITUDE_OF_CENTER       "latitude_of_center"
00269 #define SRS_PP_LONGITUDE_OF_ORIGIN      "longitude_of_origin"
00270 #define SRS_PP_LATITUDE_OF_ORIGIN       "latitude_of_origin"
00271 #define SRS_PP_FALSE_EASTING            "false_easting"
00272 #define SRS_PP_FALSE_NORTHING           "false_northing"
00273 #define SRS_PP_AZIMUTH                  "azimuth"
00274 #define SRS_PP_LONGITUDE_OF_POINT_1     "longitude_of_point_1"
00275 #define SRS_PP_LATITUDE_OF_POINT_1      "latitude_of_point_1"
00276 #define SRS_PP_LONGITUDE_OF_POINT_2     "longitude_of_point_2"
00277 #define SRS_PP_LATITUDE_OF_POINT_2      "latitude_of_point_2"
00278 #define SRS_PP_LONGITUDE_OF_POINT_3     "longitude_of_point_3"
00279 #define SRS_PP_LATITUDE_OF_POINT_3      "latitude_of_point_3"
00280 #define SRS_PP_RECTIFIED_GRID_ANGLE     "rectified_grid_angle"
00281 #define SRS_PP_LANDSAT_NUMBER           "landsat_number"
00282 #define SRS_PP_PATH_NUMBER              "path_number"
00283 #define SRS_PP_PERSPECTIVE_POINT_HEIGHT "perspective_point_height"
00284 #define SRS_PP_FIPSZONE                 "fipszone"
00285 #define SRS_PP_ZONE                     "zone"
00286 
00287 #define SRS_UL_METER            "Meter"
00288 #define SRS_UL_FOOT             "Foot (International)" /* or just "FOOT"? */
00289 #define SRS_UL_FOOT_CONV                    "0.3048"
00290 #define SRS_UL_US_FOOT          "U.S. Foot" /* or "US survey foot" */
00291 #define SRS_UL_US_FOOT_CONV                 "0.3048006"
00292 #define SRS_UL_NAUTICAL_MILE    "Nautical Mile"
00293 #define SRS_UL_NAUTICAL_MILE_CONV           "1852.0"
00294 #define SRS_UL_LINK             "Link"          /* Based on US Foot */
00295 #define SRS_UL_LINK_CONV                    "0.20116684023368047"
00296 #define SRS_UL_CHAIN            "Chain"         /* based on US Foot */
00297 #define SRS_UL_CHAIN_CONV                   "2.0116684023368047"
00298 #define SRS_UL_ROD              "Rod"           /* based on US Foot */
00299 #define SRS_UL_ROD_CONV                     "5.02921005842012"
00300 
00301 #define SRS_UA_DEGREE           "degree"
00302 #define SRS_UA_DEGREE_CONV                  "0.0174532925199433"
00303 #define SRS_UA_RADIAN           "radian"
00304 
00305 #define SRS_PM_GREENWICH        "Greenwich"
00306 
00307 #define SRS_DN_NAD27            "North_American_Datum_1927"
00308 #define SRS_DN_NAD83            "North_American_Datum_1983"
00309 #define SRS_DN_WGS84            "WGS_1984"
00310 
00311 #define SRS_WGS84_SEMIMAJOR     6378137.0                                
00312 #define SRS_WGS84_INVFLATTENING 298.257223563
00313 
00314 /* -------------------------------------------------------------------- */
00315 /*      C Wrappers for C++ objects and methods.                         */
00316 /* -------------------------------------------------------------------- */
00317 #ifndef _DEFINED_OGRSpatialReferenceH
00318 #define _DEFINED_OGRSpatialReferenceH
00319 
00320 typedef void *OGRSpatialReferenceH;                               
00321 typedef void *OGRCoordinateTransformationH;
00322 
00323 #endif
00324 
00325 
00326 OGRSpatialReferenceH CPL_DLL
00327       OSRNewSpatialReference( const char * /* = NULL */);
00328 OGRSpatialReferenceH CPL_DLL OSRCloneGeogCS( OGRSpatialReferenceH );
00329 OGRSpatialReferenceH CPL_DLL OSRCloneCS( OGRSpatialReferenceH );
00330 void CPL_DLL OSRDestroySpatialReference( OGRSpatialReferenceH );
00331 
00332 int CPL_DLL OSRReference( OGRSpatialReferenceH );
00333 int CPL_DLL OSRDereference( OGRSpatialReferenceH );
00334 
00335 OGRErr CPL_DLL OSRValidate( OGRSpatialReferenceH );
00336 OGRErr CPL_DLL OSRFixupOrdering( OGRSpatialReferenceH );
00337 OGRErr CPL_DLL OSRFixup( OGRSpatialReferenceH );
00338 OGRErr CPL_DLL OSRStripCTParms( OGRSpatialReferenceH );
00339 
00340 OGRErr CPL_DLL OSRImportFromEPSG( OGRSpatialReferenceH, int );
00341 OGRErr CPL_DLL OSRImportFromWkt( OGRSpatialReferenceH, char ** );
00342 OGRErr CPL_DLL OSRImportFromProj4( OGRSpatialReferenceH, const char *);
00343 OGRErr CPL_DLL OSRImportFromESRI( OGRSpatialReferenceH, char **);
00344 OGRErr CPL_DLL OSRImportFromPCI( OGRSpatialReferenceH hSRS, const char *,
00345                                  const char *, double * );
00346 OGRErr CPL_DLL OSRImportFromXML( OGRSpatialReferenceH, const char * );
00347 OGRErr CPL_DLL OSRExportToWkt( OGRSpatialReferenceH, char ** );
00348 OGRErr CPL_DLL OSRExportToPrettyWkt( OGRSpatialReferenceH, char **, int);
00349 OGRErr CPL_DLL OSRExportToProj4( OGRSpatialReferenceH, char **);
00350 OGRErr CPL_DLL OSRExportToPCI( OGRSpatialReferenceH, char **, char **,
00351                                double ** );
00352 OGRErr CPL_DLL OSRExportToXML( OGRSpatialReferenceH, char **, const char * );
00353 
00354 OGRErr CPL_DLL OSRMorphToESRI( OGRSpatialReferenceH );
00355 OGRErr CPL_DLL OSRMorphFromESRI( OGRSpatialReferenceH );
00356 
00357 OGRErr CPL_DLL OSRSetAttrValue( OGRSpatialReferenceH hSRS,
00358                                 const char * pszNodePath,
00359                                 const char * pszNewNodeValue );
00360 const char CPL_DLL * OSRGetAttrValue( OGRSpatialReferenceH hSRS,
00361                            const char * pszName, int iChild /* = 0 */ );
00362 
00363 OGRErr CPL_DLL OSRSetAngularUnits( OGRSpatialReferenceH, const char *, double );
00364 double CPL_DLL OSRGetAngularUnits( OGRSpatialReferenceH, char ** );
00365 OGRErr CPL_DLL OSRSetLinearUnits( OGRSpatialReferenceH, const char *, double );
00366 double CPL_DLL OSRGetLinearUnits( OGRSpatialReferenceH, char ** );
00367 
00368 double CPL_DLL OSRGetPrimeMeridian( OGRSpatialReferenceH, char ** );
00369 
00370 int CPL_DLL OSRIsGeographic( OGRSpatialReferenceH );
00371 int CPL_DLL OSRIsLocal( OGRSpatialReferenceH );
00372 int CPL_DLL OSRIsProjected( OGRSpatialReferenceH );
00373 int CPL_DLL OSRIsSameGeogCS( OGRSpatialReferenceH, OGRSpatialReferenceH );
00374 int CPL_DLL OSRIsSame( OGRSpatialReferenceH, OGRSpatialReferenceH );
00375 
00376 OGRErr CPL_DLL OSRSetLocalCS( OGRSpatialReferenceH hSRS, const char *pszName );
00377 OGRErr CPL_DLL OSRSetProjCS( OGRSpatialReferenceH hSRS, const char * pszName );
00378 OGRErr CPL_DLL OSRSetWellKnownGeogCS( OGRSpatialReferenceH hSRS,
00379                                       const char * pszName );
00380 OGRErr CPL_DLL OSRSetFromUserInput( OGRSpatialReferenceH hSRS, 
00381                                     const char * );
00382 OGRErr CPL_DLL OSRCopyGeogCSFrom( OGRSpatialReferenceH hSRS, 
00383                                   OGRSpatialReferenceH hSrcSRS );
00384 OGRErr CPL_DLL OSRSetTOWGS84( OGRSpatialReferenceH hSRS, 
00385                               double, double, double, 
00386                               double, double, double, double );
00387 OGRErr CPL_DLL OSRGetTOWGS84( OGRSpatialReferenceH hSRS, double *, int );
00388                         
00389 
00390 OGRErr CPL_DLL OSRSetGeogCS( OGRSpatialReferenceH hSRS,
00391                       const char * pszGeogName,
00392                       const char * pszDatumName,
00393                       const char * pszEllipsoidName,
00394                       double dfSemiMajor, double dfInvFlattening,
00395                       const char * pszPMName /* = NULL */,
00396                       double dfPMOffset /* = 0.0 */,
00397                       const char * pszUnits /* = NULL */,
00398                       double dfConvertToRadians /* = 0.0 */ );
00399 
00400 double CPL_DLL OSRGetSemiMajor( OGRSpatialReferenceH, OGRErr * /* = NULL */ );
00401 double CPL_DLL OSRGetSemiMinor( OGRSpatialReferenceH, OGRErr * /* = NULL */ );
00402 double CPL_DLL OSRGetInvFlattening( OGRSpatialReferenceH, OGRErr * /*=NULL*/);
00403 
00404 OGRErr CPL_DLL OSRSetAuthority( OGRSpatialReferenceH hSRS,
00405                          const char * pszTargetKey,
00406                          const char * pszAuthority,
00407                          int nCode );
00408 const char CPL_DLL *OSRGetAuthorityCode( OGRSpatialReferenceH hSRS,
00409                                          const char * pszTargetKey );
00410 const char CPL_DLL *OSRGetAuthorityName( OGRSpatialReferenceH hSRS,
00411                                          const char * pszTargetKey );
00412 OGRErr CPL_DLL OSRSetProjParm( OGRSpatialReferenceH, const char *, double );
00413 double CPL_DLL OSRGetProjParm( OGRSpatialReferenceH hSRS,
00414                         const char * pszParmName, 
00415                         double dfDefault /* = 0.0 */,
00416                         OGRErr * /* = NULL */ );
00417 OGRErr CPL_DLL OSRSetNormProjParm( OGRSpatialReferenceH, const char *, double);
00418 double CPL_DLL OSRGetNormProjParm( OGRSpatialReferenceH hSRS,
00419                                    const char * pszParmName, 
00420                                    double dfDefault /* = 0.0 */,
00421                                    OGRErr * /* = NULL */ );
00422 
00423 OGRErr CPL_DLL OSRSetUTM( OGRSpatialReferenceH hSRS, int nZone, int bNorth );
00424 int    CPL_DLL OSRGetUTMZone( OGRSpatialReferenceH hSRS, int *pbNorth );
00425 OGRErr CPL_DLL OSRSetStatePlane( OGRSpatialReferenceH hSRS, 
00426                                  int nZone, int bNAD83 );
00427 OGRErr CPL_DLL OSRSetStatePlaneWithUnits( OGRSpatialReferenceH hSRS, 
00428                                           int nZone, int bNAD83,
00429                                           const char *pszOverrideUnitName,
00430                                           double dfOverrideUnit );
00431 
00433 OGRErr CPL_DLL OSRSetACEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2,
00434                          double dfCenterLat, double dfCenterLong,
00435                          double dfFalseEasting, double dfFalseNorthing );
00436     
00438 OGRErr CPL_DLL  OSRSetAE( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00439                        double dfFalseEasting, double dfFalseNorthing );
00440 
00442 OGRErr CPL_DLL OSRSetCEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfCentralMeridian,
00443                         double dfFalseEasting, double dfFalseNorthing );
00444 
00446 OGRErr CPL_DLL OSRSetCS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00447                        double dfFalseEasting, double dfFalseNorthing );
00448 
00450 OGRErr CPL_DLL OSRSetEC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2,
00451                        double dfCenterLat, double dfCenterLong,
00452                        double dfFalseEasting, double dfFalseNorthing );
00453 
00455 OGRErr CPL_DLL OSRSetEckertIV( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00456                              double dfFalseEasting, double dfFalseNorthing );
00457 
00459 OGRErr CPL_DLL OSRSetEckertVI( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00460                              double dfFalseEasting, double dfFalseNorthing );
00461 
00463 OGRErr CPL_DLL OSRSetEquirectangular(OGRSpatialReferenceH hSRS,
00464                               double dfCenterLat, double dfCenterLong,
00465                               double dfFalseEasting, double dfFalseNorthing );
00466 
00468 OGRErr CPL_DLL OSRSetGS( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00469                        double dfFalseEasting, double dfFalseNorthing );
00470     
00472 OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS,
00473                               double dfCenterLat, double dfCenterLong,
00474                             double dfFalseEasting, double dfFalseNorthing );
00475 
00477 OGRErr CPL_DLL OSRSetHOM( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00478                         double dfAzimuth, double dfRectToSkew,
00479                         double dfScale,
00480                         double dfFalseEasting, double dfFalseNorthing );
00481 
00483 OGRErr CPL_DLL OSRSetKrovak( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00484                            double dfAzimuth, double dfPseudoStdParallelLat,
00485                            double dfScale, 
00486                            double dfFalseEasting, double dfFalseNorthing );
00487 
00489 OGRErr CPL_DLL OSRSetLAEA( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00490                          double dfFalseEasting, double dfFalseNorthing );
00491 
00493 OGRErr CPL_DLL OSRSetLCC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2,
00494                         double dfCenterLat, double dfCenterLong,
00495                         double dfFalseEasting, double dfFalseNorthing );
00496 
00498 OGRErr CPL_DLL OSRSetLCC1SP( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00499                            double dfScale,
00500                            double dfFalseEasting, double dfFalseNorthing );
00501 
00503 OGRErr CPL_DLL OSRSetLCCB( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2,
00504                          double dfCenterLat, double dfCenterLong,
00505                          double dfFalseEasting, double dfFalseNorthing );
00506     
00508 OGRErr CPL_DLL OSRSetMC( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00509                        double dfFalseEasting, double dfFalseNorthing );
00510 
00512 OGRErr CPL_DLL OSRSetMercator( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00513                              double dfScale, 
00514                              double dfFalseEasting, double dfFalseNorthing );
00515 
00517 OGRErr CPL_DLL  OSRSetMollweide( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00518                               double dfFalseEasting, double dfFalseNorthing );
00519 
00521 OGRErr CPL_DLL OSRSetNZMG( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00522                          double dfFalseEasting, double dfFalseNorthing );
00523 
00525 OGRErr CPL_DLL OSRSetOS( OGRSpatialReferenceH hSRS, double dfOriginLat, double dfCMeridian,
00526                        double dfScale,
00527                        double dfFalseEasting,double dfFalseNorthing);
00528     
00530 OGRErr CPL_DLL OSRSetOrthographic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00531                                  double dfFalseEasting,double dfFalseNorthing);
00532 
00534 OGRErr CPL_DLL OSRSetPolyconic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00535                               double dfFalseEasting, double dfFalseNorthing );
00536 
00538 OGRErr CPL_DLL OSRSetPS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00539                        double dfScale,
00540                        double dfFalseEasting, double dfFalseNorthing);
00541     
00543 OGRErr CPL_DLL OSRSetRobinson( OGRSpatialReferenceH hSRS, double dfCenterLong, 
00544                              double dfFalseEasting, double dfFalseNorthing );
00545     
00547 OGRErr CPL_DLL OSRSetSinusoidal( OGRSpatialReferenceH hSRS, double dfCenterLong, 
00548                                double dfFalseEasting, double dfFalseNorthing );
00549     
00551 OGRErr CPL_DLL OSRSetStereographic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00552                                   double dfScale,
00553                                  double dfFalseEasting,double dfFalseNorthing);
00554     
00556 OGRErr CPL_DLL OSRSetSOC( OGRSpatialReferenceH hSRS, double dfLatitudeOfOrigin, double dfCentralMeridian,
00557                         double dfFalseEasting, double dfFalseNorthing );
00558     
00560 OGRErr CPL_DLL OSRSetTM( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00561                        double dfScale,
00562                        double dfFalseEasting, double dfFalseNorthing );
00563 
00565 OGRErr CPL_DLL OSRSetTMVariant( 
00566     OGRSpatialReferenceH hSRS, const char *pszVariantName,
00567     double dfCenterLat, double dfCenterLong,
00568     double dfScale,
00569     double dfFalseEasting, double dfFalseNorthing );
00570 
00572 OGRErr CPL_DLL OSRSetTMG( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 
00573                         double dfFalseEasting, double dfFalseNorthing );
00574 
00576 OGRErr CPL_DLL OSRSetTMSO( OGRSpatialReferenceH hSRS,
00577                            double dfCenterLat, double dfCenterLong,
00578                            double dfScale,
00579                            double dfFalseEasting, double dfFalseNorthing );
00580 
00582 OGRErr CPL_DLL OSRSetVDG( OGRSpatialReferenceH hSRS,
00583                           double dfCenterLong,
00584                           double dfFalseEasting, double dfFalseNorthing );
00585 
00586 /* -------------------------------------------------------------------- */
00587 /*      OGRCoordinateTransform C API.                                   */
00588 /* -------------------------------------------------------------------- */
00589 OGRCoordinateTransformationH CPL_DLL
00590 OCTNewCoordinateTransformation( OGRSpatialReferenceH hSourceSRS,
00591                                 OGRSpatialReferenceH hTargetSRS );
00592 void CPL_DLL
00593       OCTDestroyCoordinateTransformation( OGRCoordinateTransformationH );
00594 
00595 int CPL_DLL OCTTransform( OGRCoordinateTransformationH hCT,
00596                   int nCount, double *x, double *y, double *z );
00597 
00598 /* this is really private to OGR. */
00599 char *OCTProj4Normalize( const char *pszProj4Src );
00600 
00601 /* -------------------------------------------------------------------- */
00602 /*      Projection transform dictionary query.                          */
00603 /* -------------------------------------------------------------------- */
00604 
00605 char CPL_DLL ** OPTGetProjectionMethods();
00606 char CPL_DLL ** OPTGetParameterList( const char * pszProjectionMethod,
00607                              char ** ppszUserName );
00608 int CPL_DLL OPTGetParameterInfo( const char * pszProjectionMethod,
00609                                  const char * pszParameterName,
00610                                  char ** ppszUserName,
00611                                  char ** ppszType,
00612                                  double *pdfDefaultValue );
00613 
00614 CPL_C_END
00615 
00616 #endif /* ndef _OGR_SRS_API_H_INCLUDED */

Generated on Thu Nov 13 00:06:22 2003 for OGR by doxygen 1.3.4