GDAL
ogr_srs_api.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  * $Id: ogr_srs_api.h 31181 2015-10-28 15:02:25Z rouault $
00003  *
00004  * Project:  OpenGIS Simple Features Reference Implementation
00005  * Purpose:  C API and constant declarations for OGR Spatial References.
00006  * Author:   Frank Warmerdam, warmerdam@pobox.com
00007  *
00008  ******************************************************************************
00009  * Copyright (c) 2000, Frank Warmerdam
00010  * Copyright (c) 2008-2013, Even Rouault <even dot rouault at mines-paris dot org>
00011  *
00012  * Permission is hereby granted, free of charge, to any person obtaining a
00013  * copy of this software and associated documentation files (the "Software"),
00014  * to deal in the Software without restriction, including without limitation
00015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00016  * and/or sell copies of the Software, and to permit persons to whom the
00017  * Software is furnished to do so, subject to the following conditions:
00018  *
00019  * The above copyright notice and this permission notice shall be included
00020  * in all copies or substantial portions of the Software.
00021  *
00022  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00023  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00024  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00025  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00026  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00027  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00028  * DEALINGS IN THE SOFTWARE.
00029  ****************************************************************************/
00030 
00031 #ifndef _OGR_SRS_API_H_INCLUDED
00032 #define _OGR_SRS_API_H_INCLUDED
00033 
00034 #ifndef SWIG
00035 #include "ogr_core.h"
00036 
00037 CPL_C_START
00038 
00047 /* -------------------------------------------------------------------- */
00048 /*      Axis orientations (corresponds to CS_AxisOrientationEnum).      */
00049 /* -------------------------------------------------------------------- */
00050 typedef enum {
00051     OAO_Other=0,
00052     OAO_North=1,
00053     OAO_South=2,
00054     OAO_East=3,
00055     OAO_West=4,
00056     OAO_Up=5,
00057     OAO_Down=6
00058 } OGRAxisOrientation;
00059     
00060 const char CPL_DLL *OSRAxisEnumToName( OGRAxisOrientation eOrientation );
00061 
00062 /* -------------------------------------------------------------------- */
00063 /*      Datum types (corresponds to CS_DatumType).                      */
00064 /* -------------------------------------------------------------------- */
00065 
00066 typedef enum {
00067     ODT_HD_Min=1000,
00068     ODT_HD_Other=1000,
00069     ODT_HD_Classic=1001,
00070     ODT_HD_Geocentric=1002,
00071     ODT_HD_Max=1999,
00072     ODT_VD_Min=2000,
00073     ODT_VD_Other=2000,
00074     ODT_VD_Orthometric=2001,
00075     ODT_VD_Ellipsoidal=2002,
00076     ODT_VD_AltitudeBarometric=2003,
00077     ODT_VD_Normal=2004,
00078     ODT_VD_GeoidModelDerived=2005,
00079     ODT_VD_Depth=2006,
00080     ODT_VD_Max=2999,
00081     ODT_LD_Min=10000,
00082     ODT_LD_Max=32767
00083 } OGRDatumType; 
00084 
00085 #endif // ndef SWIG
00086 
00087 /* ==================================================================== */
00088 /*      Some standard WKT geographic coordinate systems.                */
00089 /* ==================================================================== */
00090 
00091 #define SRS_WKT_WGS84 "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9108\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
00092 
00093 /* ==================================================================== */
00094 /*      Some "standard" strings.                                        */
00095 /* ==================================================================== */
00096 
00097 #define SRS_PT_ALBERS_CONIC_EQUAL_AREA                                  \
00098                                 "Albers_Conic_Equal_Area"
00099 #define SRS_PT_AZIMUTHAL_EQUIDISTANT "Azimuthal_Equidistant"
00100 #define SRS_PT_CASSINI_SOLDNER  "Cassini_Soldner"
00101 #define SRS_PT_CYLINDRICAL_EQUAL_AREA "Cylindrical_Equal_Area"
00102 #define SRS_PT_BONNE            "Bonne"
00103 #define SRS_PT_ECKERT_I         "Eckert_I"
00104 #define SRS_PT_ECKERT_II        "Eckert_II"
00105 #define SRS_PT_ECKERT_III       "Eckert_III"
00106 #define SRS_PT_ECKERT_IV        "Eckert_IV"
00107 #define SRS_PT_ECKERT_V         "Eckert_V"
00108 #define SRS_PT_ECKERT_VI        "Eckert_VI"
00109 #define SRS_PT_EQUIDISTANT_CONIC                                        \
00110                                 "Equidistant_Conic"
00111 #define SRS_PT_EQUIRECTANGULAR  "Equirectangular"
00112 #define SRS_PT_GALL_STEREOGRAPHIC                                       \
00113                                 "Gall_Stereographic"
00114 #define SRS_PT_GAUSSSCHREIBERTMERCATOR                                      \
00115                                 "Gauss_Schreiber_Transverse_Mercator"
00116 #define SRS_PT_GEOSTATIONARY_SATELLITE                                  \
00117                                 "Geostationary_Satellite"
00118 #define SRS_PT_GOODE_HOMOLOSINE "Goode_Homolosine"
00119 #define SRS_PT_IGH              "Interrupted_Goode_Homolosine"
00120 #define SRS_PT_GNOMONIC         "Gnomonic"
00121 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR_AZIMUTH_CENTER                   \
00122                                 "Hotine_Oblique_Mercator_Azimuth_Center"
00123 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR                                  \
00124                                 "Hotine_Oblique_Mercator"
00125 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN         \
00126                             "Hotine_Oblique_Mercator_Two_Point_Natural_Origin"
00127 #define SRS_PT_LABORDE_OBLIQUE_MERCATOR                                 \
00128                                 "Laborde_Oblique_Mercator"
00129 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP                              \
00130                                 "Lambert_Conformal_Conic_1SP"
00131 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP                              \
00132                                 "Lambert_Conformal_Conic_2SP"
00133 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM                      \
00134                                 "Lambert_Conformal_Conic_2SP_Belgium"
00135 #define SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA                     \
00136                                 "Lambert_Azimuthal_Equal_Area"
00137 #define SRS_PT_MERCATOR_1SP     "Mercator_1SP"
00138 #define SRS_PT_MERCATOR_2SP     "Mercator_2SP"
00139 // Mercator_Auxiliary_Sphere is used used by ESRI to mean EPSG:3875
00140 #define SRS_PT_MERCATOR_AUXILIARY_SPHERE                                 \
00141                                 "Mercator_Auxiliary_Sphere"
00142 #define SRS_PT_MILLER_CYLINDRICAL "Miller_Cylindrical"
00143 #define SRS_PT_MOLLWEIDE        "Mollweide"
00144 #define SRS_PT_NEW_ZEALAND_MAP_GRID                                     \
00145                                 "New_Zealand_Map_Grid"
00146 #define SRS_PT_OBLIQUE_STEREOGRAPHIC                                    \
00147                                 "Oblique_Stereographic"
00148 #define SRS_PT_ORTHOGRAPHIC     "Orthographic"
00149 #define SRS_PT_POLAR_STEREOGRAPHIC                                      \
00150                                 "Polar_Stereographic"
00151 #define SRS_PT_POLYCONIC        "Polyconic"
00152 #define SRS_PT_ROBINSON         "Robinson"
00153 #define SRS_PT_SINUSOIDAL       "Sinusoidal"
00154 #define SRS_PT_STEREOGRAPHIC    "Stereographic"
00155 #define SRS_PT_SWISS_OBLIQUE_CYLINDRICAL                                \
00156                                 "Swiss_Oblique_Cylindrical"
00157 #define SRS_PT_TRANSVERSE_MERCATOR                                      \
00158                                 "Transverse_Mercator"
00159 #define SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED                       \
00160                                 "Transverse_Mercator_South_Orientated"
00161 
00162 /* special mapinfo variants on Transverse Mercator */
00163 #define SRS_PT_TRANSVERSE_MERCATOR_MI_21 \
00164                                 "Transverse_Mercator_MapInfo_21"
00165 #define SRS_PT_TRANSVERSE_MERCATOR_MI_22 \
00166                                 "Transverse_Mercator_MapInfo_22"
00167 #define SRS_PT_TRANSVERSE_MERCATOR_MI_23 \
00168                                 "Transverse_Mercator_MapInfo_23"
00169 #define SRS_PT_TRANSVERSE_MERCATOR_MI_24 \
00170                                 "Transverse_Mercator_MapInfo_24"
00171 #define SRS_PT_TRANSVERSE_MERCATOR_MI_25 \
00172                                 "Transverse_Mercator_MapInfo_25"
00173 
00174 #define SRS_PT_TUNISIA_MINING_GRID                                      \
00175                                 "Tunisia_Mining_Grid"
00176 #define SRS_PT_TWO_POINT_EQUIDISTANT                                    \
00177                                 "Two_Point_Equidistant"
00178 #define SRS_PT_VANDERGRINTEN    "VanDerGrinten"
00179 #define SRS_PT_KROVAK           "Krovak"
00180 #define SRS_PT_IMW_POLYCONIC    "International_Map_of_the_World_Polyconic"
00181 #define SRS_PT_WAGNER_I         "Wagner_I"
00182 #define SRS_PT_WAGNER_II        "Wagner_II"
00183 #define SRS_PT_WAGNER_III       "Wagner_III"
00184 #define SRS_PT_WAGNER_IV        "Wagner_IV"
00185 #define SRS_PT_WAGNER_V         "Wagner_V"
00186 #define SRS_PT_WAGNER_VI        "Wagner_VI"
00187 #define SRS_PT_WAGNER_VII       "Wagner_VII"
00188 #define SRS_PT_QSC              "Quadrilateralized_Spherical_Cube"
00189 #define SRS_PT_AITOFF           "Aitoff" 
00190 #define SRS_PT_WINKEL_I         "Winkel_I" 
00191 #define SRS_PT_WINKEL_II        "Winkel_II" 
00192 #define SRS_PT_WINKEL_TRIPEL    "Winkel_Tripel" 
00193 #define SRS_PT_CRASTER_PARABOLIC    "Craster_Parabolic" 
00194 #define SRS_PT_LOXIMUTHAL        "Loximuthal"
00195 #define SRS_PT_QUARTIC_AUTHALIC  "Quartic_Authalic"
00196 
00197 #define SRS_PP_CENTRAL_MERIDIAN         "central_meridian"
00198 #define SRS_PP_SCALE_FACTOR             "scale_factor"
00199 #define SRS_PP_STANDARD_PARALLEL_1      "standard_parallel_1"
00200 #define SRS_PP_STANDARD_PARALLEL_2      "standard_parallel_2"
00201 #define SRS_PP_PSEUDO_STD_PARALLEL_1    "pseudo_standard_parallel_1"
00202 #define SRS_PP_LONGITUDE_OF_CENTER      "longitude_of_center"
00203 #define SRS_PP_LATITUDE_OF_CENTER       "latitude_of_center"
00204 #define SRS_PP_LONGITUDE_OF_ORIGIN      "longitude_of_origin"
00205 #define SRS_PP_LATITUDE_OF_ORIGIN       "latitude_of_origin"
00206 #define SRS_PP_FALSE_EASTING            "false_easting"
00207 #define SRS_PP_FALSE_NORTHING           "false_northing"
00208 #define SRS_PP_AZIMUTH                  "azimuth"
00209 #define SRS_PP_LONGITUDE_OF_POINT_1     "longitude_of_point_1"
00210 #define SRS_PP_LATITUDE_OF_POINT_1      "latitude_of_point_1"
00211 #define SRS_PP_LONGITUDE_OF_POINT_2     "longitude_of_point_2"
00212 #define SRS_PP_LATITUDE_OF_POINT_2      "latitude_of_point_2"
00213 #define SRS_PP_LONGITUDE_OF_POINT_3     "longitude_of_point_3"
00214 #define SRS_PP_LATITUDE_OF_POINT_3      "latitude_of_point_3"
00215 #define SRS_PP_RECTIFIED_GRID_ANGLE     "rectified_grid_angle"
00216 #define SRS_PP_LANDSAT_NUMBER           "landsat_number"
00217 #define SRS_PP_PATH_NUMBER              "path_number"
00218 #define SRS_PP_PERSPECTIVE_POINT_HEIGHT "perspective_point_height"
00219 #define SRS_PP_SATELLITE_HEIGHT         "satellite_height"
00220 #define SRS_PP_FIPSZONE                 "fipszone"
00221 #define SRS_PP_ZONE                     "zone"
00222 #define SRS_PP_LATITUDE_OF_1ST_POINT    "Latitude_Of_1st_Point"
00223 #define SRS_PP_LONGITUDE_OF_1ST_POINT   "Longitude_Of_1st_Point"
00224 #define SRS_PP_LATITUDE_OF_2ND_POINT    "Latitude_Of_2nd_Point"
00225 #define SRS_PP_LONGITUDE_OF_2ND_POINT   "Longitude_Of_2nd_Point"
00226 
00227 #define SRS_UL_METER            "Meter"
00228 #define SRS_UL_FOOT             "Foot (International)" /* or just "FOOT"? */
00229 #define SRS_UL_FOOT_CONV                    "0.3048"
00230 #define SRS_UL_US_FOOT          "Foot_US" /* or "US survey foot" from EPSG */
00231 #define SRS_UL_US_FOOT_CONV                 "0.3048006096012192"
00232 #define SRS_UL_NAUTICAL_MILE    "Nautical Mile"
00233 #define SRS_UL_NAUTICAL_MILE_CONV           "1852.0"
00234 #define SRS_UL_LINK             "Link"          /* Based on US Foot */
00235 #define SRS_UL_LINK_CONV                    "0.20116684023368047"
00236 #define SRS_UL_CHAIN            "Chain"         /* based on US Foot */
00237 #define SRS_UL_CHAIN_CONV                   "20.116684023368047"
00238 #define SRS_UL_ROD              "Rod"           /* based on US Foot */
00239 #define SRS_UL_ROD_CONV                     "5.02921005842012"
00240 #define SRS_UL_LINK_Clarke      "Link_Clarke"          
00241 #define SRS_UL_LINK_Clarke_CONV              "0.2011661949"
00242 
00243 #define SRS_UL_KILOMETER        "Kilometer"
00244 #define SRS_UL_KILOMETER_CONV                "1000."
00245 #define SRS_UL_DECIMETER        "Decimeter"
00246 #define SRS_UL_DECIMETER_CONV                "0.1"
00247 #define SRS_UL_CENTIMETER       "Centimeter"
00248 #define SRS_UL_CENTIMETER_CONV               "0.01"
00249 #define SRS_UL_MILLIMETER       "Millimeter"
00250 #define SRS_UL_MILLIMETER_CONV               "0.001"
00251 #define SRS_UL_INTL_NAUT_MILE   "Nautical_Mile_International"
00252 #define SRS_UL_INTL_NAUT_MILE_CONV           "1852.0"
00253 #define SRS_UL_INTL_INCH        "Inch_International"
00254 #define SRS_UL_INTL_INCH_CONV                "0.0254"
00255 #define SRS_UL_INTL_FOOT        "Foot_International"
00256 #define SRS_UL_INTL_FOOT_CONV                    "0.3048"
00257 #define SRS_UL_INTL_YARD        "Yard_International"
00258 #define SRS_UL_INTL_YARD_CONV                "0.9144"
00259 #define SRS_UL_INTL_STAT_MILE   "Statute_Mile_International"
00260 #define SRS_UL_INTL_STAT_MILE_CONV           "1609.344"
00261 #define SRS_UL_INTL_FATHOM      "Fathom_International"
00262 #define SRS_UL_INTL_FATHOM_CONV              "1.8288"
00263 #define SRS_UL_INTL_CHAIN       "Chain_International"
00264 #define SRS_UL_INTL_CHAIN_CONV               "20.1168"
00265 #define SRS_UL_INTL_LINK        "Link_International"
00266 #define SRS_UL_INTL_LINK_CONV                "0.201168"
00267 #define SRS_UL_US_INCH          "Inch_US_Surveyor"
00268 #define SRS_UL_US_INCH_CONV                  "0.025400050800101603"
00269 #define SRS_UL_US_YARD          "Yard_US_Surveyor"
00270 #define SRS_UL_US_YARD_CONV                  "0.914401828803658"
00271 #define SRS_UL_US_CHAIN         "Chain_US_Surveyor"
00272 #define SRS_UL_US_CHAIN_CONV                 "20.11684023368047"
00273 #define SRS_UL_US_STAT_MILE     "Statute_Mile_US_Surveyor"
00274 #define SRS_UL_US_STAT_MILE_CONV             "1609.347218694437"
00275 #define SRS_UL_INDIAN_YARD      "Yard_Indian"
00276 #define SRS_UL_INDIAN_YARD_CONV              "0.91439523"
00277 #define SRS_UL_INDIAN_FOOT      "Foot_Indian"
00278 #define SRS_UL_INDIAN_FOOT_CONV              "0.30479841"
00279 #define SRS_UL_INDIAN_CHAIN     "Chain_Indian"
00280 #define SRS_UL_INDIAN_CHAIN_CONV             "20.11669506"
00281 
00282 #define SRS_UA_DEGREE           "degree"
00283 #define SRS_UA_DEGREE_CONV                  "0.0174532925199433"
00284 #define SRS_UA_RADIAN           "radian"
00285 
00286 #define SRS_PM_GREENWICH        "Greenwich"
00287 
00288 #define SRS_DN_NAD27            "North_American_Datum_1927"
00289 #define SRS_DN_NAD83            "North_American_Datum_1983"
00290 #define SRS_DN_WGS72            "WGS_1972"
00291 #define SRS_DN_WGS84            "WGS_1984"
00292 
00293 #define SRS_WGS84_SEMIMAJOR     6378137.0                                
00294 #define SRS_WGS84_INVFLATTENING 298.257223563
00295 
00296 #ifndef SWIG
00297 /* -------------------------------------------------------------------- */
00298 /*      C Wrappers for C++ objects and methods.                         */
00299 /* -------------------------------------------------------------------- */
00300 #ifndef _DEFINED_OGRSpatialReferenceH
00301 #define _DEFINED_OGRSpatialReferenceH
00302 
00303 #ifdef DEBUG
00304 typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH;
00305 typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH;
00306 #else
00307 typedef void *OGRSpatialReferenceH;                               
00308 typedef void *OGRCoordinateTransformationH;
00309 #endif
00310 
00311 #endif
00312 
00313 
00314 OGRSpatialReferenceH CPL_DLL CPL_STDCALL
00315       OSRNewSpatialReference( const char * /* = NULL */);
00316 OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRCloneGeogCS( OGRSpatialReferenceH );
00317 OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRClone( OGRSpatialReferenceH );
00318 void CPL_DLL CPL_STDCALL OSRDestroySpatialReference( OGRSpatialReferenceH );
00319 
00320 int CPL_DLL OSRReference( OGRSpatialReferenceH );
00321 int CPL_DLL OSRDereference( OGRSpatialReferenceH );
00322 void CPL_DLL OSRRelease( OGRSpatialReferenceH );
00323 
00324 OGRErr CPL_DLL OSRValidate( OGRSpatialReferenceH );
00325 OGRErr CPL_DLL OSRFixupOrdering( OGRSpatialReferenceH );
00326 OGRErr CPL_DLL OSRFixup( OGRSpatialReferenceH );
00327 OGRErr CPL_DLL OSRStripCTParms( OGRSpatialReferenceH );
00328 
00329 OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSG( OGRSpatialReferenceH, int );
00330 OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSGA( OGRSpatialReferenceH, int );
00331 OGRErr CPL_DLL OSRImportFromWkt( OGRSpatialReferenceH, char ** );
00332 OGRErr CPL_DLL OSRImportFromProj4( OGRSpatialReferenceH, const char *);
00333 OGRErr CPL_DLL OSRImportFromESRI( OGRSpatialReferenceH, char **);
00334 OGRErr CPL_DLL OSRImportFromPCI( OGRSpatialReferenceH hSRS, const char *,
00335                                  const char *, double * );
00336 OGRErr CPL_DLL OSRImportFromUSGS( OGRSpatialReferenceH,
00337                                   long, long, double *, long);
00338 OGRErr CPL_DLL OSRImportFromXML( OGRSpatialReferenceH, const char * );
00339 OGRErr CPL_DLL OSRImportFromDict( OGRSpatialReferenceH, const char *, 
00340                                   const char * );
00341 OGRErr CPL_DLL OSRImportFromPanorama( OGRSpatialReferenceH, long, long, long,
00342                                       double * );
00343 OGRErr CPL_DLL OSRImportFromOzi( OGRSpatialReferenceH , const char * const *);
00344 OGRErr CPL_DLL OSRImportFromMICoordSys( OGRSpatialReferenceH, const char *);
00345 OGRErr CPL_DLL OSRImportFromERM( OGRSpatialReferenceH,
00346                                  const char *, const char *, const char * );
00347 OGRErr CPL_DLL OSRImportFromUrl( OGRSpatialReferenceH, const char * );
00348 
00349 OGRErr CPL_DLL CPL_STDCALL OSRExportToWkt( OGRSpatialReferenceH, char ** );
00350 OGRErr CPL_DLL CPL_STDCALL OSRExportToPrettyWkt( OGRSpatialReferenceH, char **, int);
00351 OGRErr CPL_DLL CPL_STDCALL OSRExportToProj4( OGRSpatialReferenceH, char **);
00352 OGRErr CPL_DLL OSRExportToPCI( OGRSpatialReferenceH, char **, char **,
00353                                double ** );
00354 OGRErr CPL_DLL OSRExportToUSGS( OGRSpatialReferenceH, long *, long *,
00355                                 double **, long * );
00356 OGRErr CPL_DLL OSRExportToXML( OGRSpatialReferenceH, char **, const char * );
00357 OGRErr CPL_DLL OSRExportToPanorama( OGRSpatialReferenceH, long *, long *,
00358                                     long *, long *, double * );
00359 OGRErr CPL_DLL OSRExportToMICoordSys( OGRSpatialReferenceH, char ** );
00360 OGRErr CPL_DLL OSRExportToERM( OGRSpatialReferenceH, char *, char *, char * );
00361 
00362 OGRErr CPL_DLL OSRMorphToESRI( OGRSpatialReferenceH );
00363 OGRErr CPL_DLL OSRMorphFromESRI( OGRSpatialReferenceH );
00364 
00365 OGRErr CPL_DLL CPL_STDCALL OSRSetAttrValue( OGRSpatialReferenceH hSRS,
00366                                 const char * pszNodePath,
00367                                 const char * pszNewNodeValue );
00368 const char CPL_DLL * CPL_STDCALL OSRGetAttrValue( OGRSpatialReferenceH hSRS,
00369                            const char * pszName, int iChild /* = 0 */ );
00370 
00371 OGRErr CPL_DLL OSRSetAngularUnits( OGRSpatialReferenceH, const char *, double );
00372 double CPL_DLL OSRGetAngularUnits( OGRSpatialReferenceH, char ** );
00373 OGRErr CPL_DLL OSRSetLinearUnits( OGRSpatialReferenceH, const char *, double );
00374 OGRErr CPL_DLL OSRSetTargetLinearUnits( OGRSpatialReferenceH, const char *, const char *, double );
00375 OGRErr CPL_DLL OSRSetLinearUnitsAndUpdateParameters( 
00376     OGRSpatialReferenceH, const char *, double );
00377 double CPL_DLL OSRGetLinearUnits( OGRSpatialReferenceH, char ** );
00378 double CPL_DLL OSRGetTargetLinearUnits( OGRSpatialReferenceH, const char *, char ** );
00379 
00380 double CPL_DLL OSRGetPrimeMeridian( OGRSpatialReferenceH, char ** );
00381 
00382 int CPL_DLL OSRIsGeographic( OGRSpatialReferenceH );
00383 int CPL_DLL OSRIsLocal( OGRSpatialReferenceH );
00384 int CPL_DLL OSRIsProjected( OGRSpatialReferenceH );
00385 int CPL_DLL OSRIsCompound( OGRSpatialReferenceH );
00386 int CPL_DLL OSRIsGeocentric( OGRSpatialReferenceH );
00387 int CPL_DLL OSRIsVertical( OGRSpatialReferenceH );
00388 int CPL_DLL OSRIsSameGeogCS( OGRSpatialReferenceH, OGRSpatialReferenceH );
00389 int CPL_DLL OSRIsSameVertCS( OGRSpatialReferenceH, OGRSpatialReferenceH );
00390 int CPL_DLL OSRIsSame( OGRSpatialReferenceH, OGRSpatialReferenceH );
00391 
00392 OGRErr CPL_DLL OSRSetLocalCS( OGRSpatialReferenceH hSRS, const char *pszName );
00393 OGRErr CPL_DLL OSRSetProjCS( OGRSpatialReferenceH hSRS, const char * pszName );
00394 OGRErr CPL_DLL OSRSetGeocCS( OGRSpatialReferenceH hSRS, const char * pszName );
00395 OGRErr CPL_DLL OSRSetWellKnownGeogCS( OGRSpatialReferenceH hSRS,
00396                                       const char * pszName );
00397 OGRErr CPL_DLL CPL_STDCALL OSRSetFromUserInput( OGRSpatialReferenceH hSRS, 
00398                                     const char * );
00399 OGRErr CPL_DLL OSRCopyGeogCSFrom( OGRSpatialReferenceH hSRS, 
00400                                   OGRSpatialReferenceH hSrcSRS );
00401 OGRErr CPL_DLL OSRSetTOWGS84( OGRSpatialReferenceH hSRS, 
00402                               double, double, double, 
00403                               double, double, double, double );
00404 OGRErr CPL_DLL OSRGetTOWGS84( OGRSpatialReferenceH hSRS, double *, int );
00405                         
00406 
00407 OGRErr CPL_DLL OSRSetCompoundCS( OGRSpatialReferenceH hSRS,
00408                                  const char *pszName,
00409                                  OGRSpatialReferenceH hHorizSRS,
00410                                  OGRSpatialReferenceH hVertSRS );
00411 OGRErr CPL_DLL OSRSetGeogCS( OGRSpatialReferenceH hSRS,
00412                       const char * pszGeogName,
00413                       const char * pszDatumName,
00414                       const char * pszEllipsoidName,
00415                       double dfSemiMajor, double dfInvFlattening,
00416                       const char * pszPMName /* = NULL */,
00417                       double dfPMOffset /* = 0.0 */,
00418                       const char * pszUnits /* = NULL */,
00419                       double dfConvertToRadians /* = 0.0 */ );
00420 
00421 OGRErr CPL_DLL OSRSetVertCS( OGRSpatialReferenceH hSRS,
00422                       const char * pszVertCSName,
00423                       const char * pszVertDatumName,
00424                       int nVertDatumType );
00425 
00426 double CPL_DLL OSRGetSemiMajor( OGRSpatialReferenceH, OGRErr * /* = NULL */ );
00427 double CPL_DLL OSRGetSemiMinor( OGRSpatialReferenceH, OGRErr * /* = NULL */ );
00428 double CPL_DLL OSRGetInvFlattening( OGRSpatialReferenceH, OGRErr * /*=NULL*/);
00429 
00430 OGRErr CPL_DLL OSRSetAuthority( OGRSpatialReferenceH hSRS,
00431                          const char * pszTargetKey,
00432                          const char * pszAuthority,
00433                          int nCode );
00434 const char CPL_DLL *OSRGetAuthorityCode( OGRSpatialReferenceH hSRS,
00435                                          const char * pszTargetKey );
00436 const char CPL_DLL *OSRGetAuthorityName( OGRSpatialReferenceH hSRS,
00437                                          const char * pszTargetKey );
00438 OGRErr CPL_DLL OSRSetProjection( OGRSpatialReferenceH, const char * );
00439 OGRErr CPL_DLL OSRSetProjParm( OGRSpatialReferenceH, const char *, double );
00440 double CPL_DLL OSRGetProjParm( OGRSpatialReferenceH hSRS,
00441                         const char * pszParmName, 
00442                         double dfDefault /* = 0.0 */,
00443                         OGRErr * /* = NULL */ );
00444 OGRErr CPL_DLL OSRSetNormProjParm( OGRSpatialReferenceH, const char *, double);
00445 double CPL_DLL OSRGetNormProjParm( OGRSpatialReferenceH hSRS,
00446                                    const char * pszParmName, 
00447                                    double dfDefault /* = 0.0 */,
00448                                    OGRErr * /* = NULL */ );
00449 
00450 OGRErr CPL_DLL OSRSetUTM( OGRSpatialReferenceH hSRS, int nZone, int bNorth );
00451 int    CPL_DLL OSRGetUTMZone( OGRSpatialReferenceH hSRS, int *pbNorth );
00452 OGRErr CPL_DLL OSRSetStatePlane( OGRSpatialReferenceH hSRS, 
00453                                  int nZone, int bNAD83 );
00454 OGRErr CPL_DLL OSRSetStatePlaneWithUnits( OGRSpatialReferenceH hSRS, 
00455                                           int nZone, int bNAD83,
00456                                           const char *pszOverrideUnitName,
00457                                           double dfOverrideUnit );
00458 OGRErr CPL_DLL OSRAutoIdentifyEPSG( OGRSpatialReferenceH hSRS );
00459 
00460 int    CPL_DLL OSREPSGTreatsAsLatLong( OGRSpatialReferenceH hSRS );
00461 int    CPL_DLL OSREPSGTreatsAsNorthingEasting( OGRSpatialReferenceH hSRS );
00462 const char CPL_DLL *OSRGetAxis( OGRSpatialReferenceH hSRS,
00463                                 const char *pszTargetKey, int iAxis, 
00464                                 OGRAxisOrientation *peOrientation );
00465 OGRErr CPL_DLL OSRSetAxes( OGRSpatialReferenceH hSRS, 
00466                            const char *pszTargetKey,
00467                            const char *pszXAxisName,
00468                            OGRAxisOrientation eXAxisOrientation,
00469                            const char *pszYAxisName, 
00470                            OGRAxisOrientation eYAxisOrientation );
00472 OGRErr CPL_DLL OSRSetACEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2,
00473                          double dfCenterLat, double dfCenterLong,
00474                          double dfFalseEasting, double dfFalseNorthing );
00475     
00477 OGRErr CPL_DLL  OSRSetAE( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00478                        double dfFalseEasting, double dfFalseNorthing );
00479 
00481 OGRErr CPL_DLL OSRSetBonne(OGRSpatialReferenceH hSRS, 
00482                            double dfStandardParallel, double dfCentralMeridian,
00483                            double dfFalseEasting, double dfFalseNorthing );
00484 
00486 OGRErr CPL_DLL OSRSetCEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfCentralMeridian,
00487                         double dfFalseEasting, double dfFalseNorthing );
00488 
00490 OGRErr CPL_DLL OSRSetCS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong,
00491                        double dfFalseEasting, double dfFalseNorthing );
00492 
00494 OGRErr CPL_DLL OSRSetEC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2,
00495                        double dfCenterLat, double dfCenterLong,
00496                        double dfFalseEasting, double dfFalseNorthing );
00497 
00499 OGRErr CPL_DLL OSRSetEckert( OGRSpatialReferenceH hSRS,  int nVariation,
00500                              double dfCentralMeridian,
00501                              double dfFalseEasting, double dfFalseNorthing );
00502 
00504 OGRErr CPL_DLL OSRSetEckertIV( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00505                              double dfFalseEasting, double dfFalseNorthing );
00506 
00508 OGRErr CPL_DLL OSRSetEckertVI( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00509                              double dfFalseEasting, double dfFalseNorthing );
00510 
00512 OGRErr CPL_DLL OSRSetEquirectangular(OGRSpatialReferenceH hSRS,
00513                               double dfCenterLat, double dfCenterLong,
00514                               double dfFalseEasting, double dfFalseNorthing );
00515 
00517 OGRErr CPL_DLL OSRSetEquirectangular2( OGRSpatialReferenceH hSRS,
00518                               double dfCenterLat, double dfCenterLong,
00519                               double dfPseudoStdParallel1,
00520                               double dfFalseEasting,
00521                               double dfFalseNorthing );
00522 
00524 OGRErr CPL_DLL OSRSetGS( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00525                        double dfFalseEasting, double dfFalseNorthing );
00526     
00528 OGRErr CPL_DLL OSRSetGH( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
00529                          double dfFalseEasting, double dfFalseNorthing );
00530 
00532 OGRErr CPL_DLL OSRSetIGH( OGRSpatialReferenceH hSRS );
00533     
00535 OGRErr CPL_DLL OSRSetGEOS( OGRSpatialReferenceH hSRS, 
00536                            double dfCentralMeridian, double dfSatelliteHeight,
00537                            double dfFalseEasting, double dfFalseNorthing );
00538 
00540 OGRErr CPL_DLL OSRSetGaussSchreiberTMercator( OGRSpatialReferenceH hSRS,
00541                                   double dfCenterLat, double dfCenterLong,
00542                                   double dfScale,
00543                                   double dfFalseEasting,
00544                                   double dfFalseNorthing );
00546 OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS,
00547                               double dfCenterLat, double dfCenterLong,
00548                             double dfFalseEasting, double dfFalseNorthing );
00549 
00551 OGRErr CPL_DLL OSRSetOM( OGRSpatialReferenceH hSRS,
00552                          double dfCenterLat, double dfCenterLong,
00553                          double dfAzimuth, double dfRectToSkew,
00554                          double dfScale,
00555                          double dfFalseEasting, double dfFalseNorthing );
00556 
00558 OGRErr CPL_DLL OSRSetHOM( OGRSpatialReferenceH hSRS,
00559                           double dfCenterLat, double dfCenterLong,
00560                           double dfAzimuth, double dfRectToSkew,
00561                           double dfScale,
00562                           double dfFalseEasting, double dfFalseNorthing );
00563 
00564 OGRErr CPL_DLL OSRSetHOMAC( OGRSpatialReferenceH hSRS, 
00565                     double dfCenterLat, double dfCenterLong,
00566                     double dfAzimuth, double dfRectToSkew, 
00567                     double dfScale,
00568                     double dfFalseEasting,
00569                     double dfFalseNorthing );
00570 
00572 OGRErr CPL_DLL OSRSetHOM2PNO( OGRSpatialReferenceH hSRS, double dfCenterLat,
00573                               double dfLat1, double dfLong1,
00574                               double dfLat2, double dfLong2,
00575                               double dfScale,
00576                               double dfFalseEasting, double dfFalseNorthing );
00577 
00579 OGRErr CPL_DLL OSRSetIWMPolyconic( OGRSpatialReferenceH hSRS,
00580                                    double dfLat1, double dfLat2,
00581                                    double dfCenterLong,
00582                                    double dfFalseEasting,
00583                                    double dfFalseNorthing );
00584 
00586 OGRErr CPL_DLL OSRSetKrovak( OGRSpatialReferenceH hSRS,
00587                              double dfCenterLat, double dfCenterLong,
00588                              double dfAzimuth, double dfPseudoStdParallelLat,
00589                              double dfScale, 
00590                              double dfFalseEasting, double dfFalseNorthing );
00591 
00593 OGRErr CPL_DLL OSRSetLAEA( OGRSpatialReferenceH hSRS,
00594                            double dfCenterLat, double dfCenterLong,
00595                            double dfFalseEasting, double dfFalseNorthing );
00596 
00598 OGRErr CPL_DLL OSRSetLCC( OGRSpatialReferenceH hSRS,
00599                           double dfStdP1, double dfStdP2,
00600                           double dfCenterLat, double dfCenterLong,
00601                           double dfFalseEasting, double dfFalseNorthing );
00602 
00604 OGRErr CPL_DLL OSRSetLCC1SP( OGRSpatialReferenceH hSRS,
00605                              double dfCenterLat, double dfCenterLong,
00606                              double dfScale,
00607                              double dfFalseEasting, double dfFalseNorthing );
00608 
00610 OGRErr CPL_DLL OSRSetLCCB( OGRSpatialReferenceH hSRS,
00611                            double dfStdP1, double dfStdP2,
00612                            double dfCenterLat, double dfCenterLong,
00613                            double dfFalseEasting, double dfFalseNorthing );
00614     
00616 OGRErr CPL_DLL OSRSetMC( OGRSpatialReferenceH hSRS,
00617                          double dfCenterLat, double dfCenterLong,
00618                          double dfFalseEasting, double dfFalseNorthing );
00619 
00621 OGRErr CPL_DLL OSRSetMercator( OGRSpatialReferenceH hSRS,
00622                                double dfCenterLat, double dfCenterLong,
00623                                double dfScale, 
00624                                double dfFalseEasting, double dfFalseNorthing );
00625 OGRErr CPL_DLL OSRSetMercator2SP( OGRSpatialReferenceH hSRS, 
00626                           double dfStdP1,
00627                           double dfCenterLat, double dfCenterLong,
00628                           double dfFalseEasting, double dfFalseNorthing );
00629 
00631 OGRErr CPL_DLL  OSRSetMollweide( OGRSpatialReferenceH hSRS,
00632                                  double dfCentralMeridian,
00633                                  double dfFalseEasting,
00634                                  double dfFalseNorthing );
00635 
00637 OGRErr CPL_DLL OSRSetNZMG( OGRSpatialReferenceH hSRS,
00638                            double dfCenterLat, double dfCenterLong,
00639                            double dfFalseEasting, double dfFalseNorthing );
00640 
00642 OGRErr CPL_DLL OSRSetOS( OGRSpatialReferenceH hSRS,
00643                          double dfOriginLat, double dfCMeridian,
00644                          double dfScale,
00645                          double dfFalseEasting,double dfFalseNorthing);
00646     
00648 OGRErr CPL_DLL OSRSetOrthographic( OGRSpatialReferenceH hSRS,
00649                                    double dfCenterLat, double dfCenterLong,
00650                                    double dfFalseEasting,
00651                                    double dfFalseNorthing);
00652 
00654 OGRErr CPL_DLL OSRSetPolyconic( OGRSpatialReferenceH hSRS,
00655                                 double dfCenterLat, double dfCenterLong,
00656                                 double dfFalseEasting, double dfFalseNorthing );
00657 
00659 OGRErr CPL_DLL OSRSetPS( OGRSpatialReferenceH hSRS,
00660                          double dfCenterLat, double dfCenterLong,
00661                          double dfScale,
00662                          double dfFalseEasting, double dfFalseNorthing);
00663     
00665 OGRErr CPL_DLL OSRSetRobinson( OGRSpatialReferenceH hSRS,
00666                                double dfCenterLong, 
00667                                double dfFalseEasting, double dfFalseNorthing );
00668     
00670 OGRErr CPL_DLL OSRSetSinusoidal( OGRSpatialReferenceH hSRS,
00671                                  double dfCenterLong, 
00672                                  double dfFalseEasting,
00673                                  double dfFalseNorthing );
00674     
00676 OGRErr CPL_DLL OSRSetStereographic( OGRSpatialReferenceH hSRS,
00677                                     double dfCenterLat, double dfCenterLong,
00678                                     double dfScale,
00679                                     double dfFalseEasting,
00680                                     double dfFalseNorthing);
00681     
00683 OGRErr CPL_DLL OSRSetSOC( OGRSpatialReferenceH hSRS,
00684                           double dfLatitudeOfOrigin, double dfCentralMeridian,
00685                           double dfFalseEasting, double dfFalseNorthing );
00686     
00693 OGRErr CPL_DLL OSRSetTM( OGRSpatialReferenceH hSRS,
00694                          double dfCenterLat, double dfCenterLong,
00695                          double dfScale,
00696                          double dfFalseEasting, double dfFalseNorthing );
00697 
00699 OGRErr CPL_DLL OSRSetTMVariant( 
00700     OGRSpatialReferenceH hSRS, const char *pszVariantName,
00701     double dfCenterLat, double dfCenterLong,
00702     double dfScale,
00703     double dfFalseEasting, double dfFalseNorthing );
00704 
00706 OGRErr CPL_DLL OSRSetTMG( OGRSpatialReferenceH hSRS,
00707                           double dfCenterLat, double dfCenterLong, 
00708                          double dfFalseEasting, double dfFalseNorthing );
00709 
00711 OGRErr CPL_DLL OSRSetTMSO( OGRSpatialReferenceH hSRS,
00712                            double dfCenterLat, double dfCenterLong,
00713                            double dfScale,
00714                            double dfFalseEasting, double dfFalseNorthing );
00715 
00716 OGRErr CPL_DLL OSRSetTPED( OGRSpatialReferenceH hSRS,
00717                    double dfLat1, double dfLong1,
00718                    double dfLat2, double dfLong2,
00719                    double dfFalseEasting, double dfFalseNorthing );
00720 
00722 OGRErr CPL_DLL OSRSetVDG( OGRSpatialReferenceH hSRS,
00723                           double dfCenterLong,
00724                           double dfFalseEasting, double dfFalseNorthing );
00725 
00727 OGRErr CPL_DLL OSRSetWagner( OGRSpatialReferenceH hSRS, int nVariation,
00728                              double dfCenterLat,
00729                              double dfFalseEasting,
00730                              double dfFalseNorthing );
00731 
00733 OGRErr CPL_DLL OSRSetQSC( OGRSpatialReferenceH hSRS,
00734                               double dfCenterLat, double dfCenterLong );
00735 
00736 double CPL_DLL OSRCalcInvFlattening( double dfSemiMajor, double dfSemiMinor );
00737 double CPL_DLL OSRCalcSemiMinorFromInvFlattening( double dfSemiMajor, double dfInvFlattening );
00738 
00739 void CPL_DLL OSRCleanup( void );
00740 
00741 /* -------------------------------------------------------------------- */
00742 /*      OGRCoordinateTransform C API.                                   */
00743 /* -------------------------------------------------------------------- */
00744 OGRCoordinateTransformationH CPL_DLL CPL_STDCALL
00745 OCTNewCoordinateTransformation( OGRSpatialReferenceH hSourceSRS,
00746                                 OGRSpatialReferenceH hTargetSRS );
00747 void CPL_DLL CPL_STDCALL 
00748       OCTDestroyCoordinateTransformation( OGRCoordinateTransformationH );
00749 
00750 int CPL_DLL CPL_STDCALL
00751 OCTTransform( OGRCoordinateTransformationH hCT,
00752               int nCount, double *x, double *y, double *z );
00753 
00754 int CPL_DLL CPL_STDCALL
00755 OCTTransformEx( OGRCoordinateTransformationH hCT,
00756                 int nCount, double *x, double *y, double *z,
00757                 int *pabSuccess );
00758 
00759 /* this is really private to OGR. */
00760 char *OCTProj4Normalize( const char *pszProj4Src );
00761 
00762 void OCTCleanupProjMutex( void );
00763 
00764 /* -------------------------------------------------------------------- */
00765 /*      Projection transform dictionary query.                          */
00766 /* -------------------------------------------------------------------- */
00767 
00768 char CPL_DLL ** OPTGetProjectionMethods( void );
00769 char CPL_DLL ** OPTGetParameterList( const char * pszProjectionMethod,
00770                              char ** ppszUserName );
00771 int CPL_DLL OPTGetParameterInfo( const char * pszProjectionMethod,
00772                                  const char * pszParameterName,
00773                                  char ** ppszUserName,
00774                                  char ** ppszType,
00775                                  double *pdfDefaultValue );
00776 
00777 CPL_C_END
00778 
00779 #endif /* ndef SWIG */
00780 
00781 #endif /* ndef _OGR_SRS_API_H_INCLUDED */

Generated for GDAL by doxygen 1.7.6.1.