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.45 2004/05/12 19:25:54 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.45 2004/05/12 19:25:54 dron 00032 * SRS_DN_WGS72 constant added. 00033 * 00034 * Revision 1.44 2004/05/10 17:05:14 warmerda 00035 * added AutoIdentifyEPSG() 00036 * 00037 * Revision 1.43 2004/05/06 19:26:04 dron 00038 * Added OSRSetProjection() function. 00039 * 00040 * Revision 1.42 2004/03/04 18:04:45 warmerda 00041 * added importFromDict() support 00042 * 00043 * Revision 1.41 2004/02/07 17:31:21 dron 00044 * Added OSRExportToUSGS() method. 00045 * 00046 * Revision 1.40 2004/02/05 17:07:59 dron 00047 * Support for HOM projection, specified by two points on centerline. 00048 * 00049 * Revision 1.39 2004/02/01 14:23:29 dron 00050 * Added OSRImportFromUSGS(). 00051 * 00052 * Revision 1.38 2004/01/24 09:35:00 warmerda 00053 * added TransformEx support to capture per point reprojection failure 00054 * 00055 * Revision 1.37 2003/09/09 07:49:52 dron 00056 * Added OSRExportToPCI(). 00057 * 00058 * Revision 1.36 2003/08/31 14:51:01 dron 00059 * Added OSRImportFromPCI(). 00060 * 00061 * Revision 1.35 2003/08/18 13:26:01 warmerda 00062 * added SetTMVariant() and related definitions 00063 * 00064 * Revision 1.34 2003/06/21 23:24:36 warmerda 00065 * added Set/Get TOWGS84 calls 00066 * 00067 * Revision 1.33 2003/06/19 17:10:26 warmerda 00068 * a couple fixes in last commit 00069 * 00070 * Revision 1.32 2003/06/18 18:24:17 warmerda 00071 * added projection specific set methods to C API 00072 * 00073 * Revision 1.31 2003/06/10 09:31:12 dron 00074 * Added OSRSetAngularUnits() and OSRGetAngularUnits(). 00075 * 00076 * Revision 1.30 2003/05/30 15:39:53 warmerda 00077 * Added override units capability for SetStatePlane() 00078 * 00079 * Revision 1.29 2003/03/21 22:15:11 warmerda 00080 * added C XML import/export entry points 00081 * 00082 * Revision 1.28 2003/03/12 14:29:34 warmerda 00083 * Rename OGRAxisOrientation and OGRDatumType values to avoid conflicts with 00084 * the real OGC definitions in applications such as Cadcorps. 00085 * 00086 * Revision 1.27 2003/02/25 04:53:38 warmerda 00087 * added OSRCopyGeogCSFrom 00088 * 00089 * Revision 1.26 2003/02/06 04:53:12 warmerda 00090 * added Fixup() method 00091 * 00092 * Revision 1.25 2003/01/08 18:14:28 warmerda 00093 * added FixupOrdering() 00094 * 00095 * Revision 1.24 2002/12/16 17:07:13 warmerda 00096 * added NormProjParm functions, and OSRGetPrimeMeridian 00097 * 00098 * Revision 1.23 2002/12/14 22:59:14 warmerda 00099 * added Krovak in ESRI compatible way 00100 * 00101 * Revision 1.22 2002/12/09 18:55:07 warmerda 00102 * moved DMS stuff to gdal/port 00103 * 00104 * Revision 1.21 2002/12/09 16:11:53 warmerda 00105 * added DMS translation 00106 * 00107 * Revision 1.20 2002/11/25 16:12:54 warmerda 00108 * added GetAuthorityCode/Name 00109 * 00110 * Revision 1.19 2002/09/26 18:13:25 warmerda 00111 * avoid double def 00112 * 00113 * Revision 1.18 2002/06/11 18:02:03 warmerda 00114 * add PROJ.4 normalization and EPSG support 00115 * 00116 * Revision 1.17 2001/10/11 19:27:12 warmerda 00117 * upgraded validation infrastructure 00118 * 00119 * Revision 1.16 2001/10/10 20:42:43 warmerda 00120 * added ESRI WKT morphing support 00121 * 00122 * Revision 1.15 2001/09/21 16:21:02 warmerda 00123 * added Clear(), and SetFromUserInput() methods 00124 * 00125 * Revision 1.14 2000/11/09 06:21:32 warmerda 00126 * added limited ESRI prj support 00127 * 00128 * Revision 1.13 2000/10/20 04:19:38 warmerda 00129 * added setstateplane 00130 * 00131 * Revision 1.12 2000/10/16 21:26:07 warmerda 00132 * added some level of LOCAL_CS support 00133 * 00134 * Revision 1.11 2000/09/01 20:58:01 warmerda 00135 * added CPL_DLL for entry points 00136 * 00137 * Revision 1.10 2000/08/30 20:06:14 warmerda 00138 * added projection method list functions 00139 * 00140 * Revision 1.9 2000/08/28 20:13:23 warmerda 00141 * added importFromProj4 00142 * 00143 * Revision 1.8 2000/07/11 01:02:06 warmerda 00144 * added ExportToProj4() 00145 * 00146 * Revision 1.7 2000/07/09 20:48:02 warmerda 00147 * added exportToPrettyWkt 00148 * 00149 * Revision 1.6 2000/05/30 22:45:44 warmerda 00150 * added OSRCloneGeogCS() 00151 * 00152 * Revision 1.5 2000/04/26 18:25:56 warmerda 00153 * added missing CPL_DLL attributes 00154 * 00155 * Revision 1.4 2000/03/22 01:09:43 warmerda 00156 * added SetProjCS and SetWellKnownTextCS 00157 * 00158 * Revision 1.3 2000/03/20 23:33:51 warmerda 00159 * updated docs a bit 00160 * 00161 * Revision 1.2 2000/03/20 22:39:31 warmerda 00162 * Added C API. 00163 * 00164 * Revision 1.1 2000/03/16 19:04:14 warmerda 00165 * New 00166 * 00167 */ 00168 00169 #ifndef _OGR_SRS_API_H_INCLUDED 00170 #define _OGR_SRS_API_H_INCLUDED 00171 00172 #include "ogr_core.h" 00173 00174 CPL_C_START 00175 00184 /* -------------------------------------------------------------------- */ 00185 /* Axis orientations (corresponds to CS_AxisOrientationEnum). */ 00186 /* -------------------------------------------------------------------- */ 00187 typedef enum { 00188 OAO_Other=0, 00189 OAO_North=1, 00190 OAO_South=2, 00191 OAO_East=3, 00192 OAO_West=4, 00193 OAO_Up=5, 00194 OAO_Down=6 00195 } OGRAxisOrientation; 00196 00197 /* -------------------------------------------------------------------- */ 00198 /* Datum types (corresponds to CS_DatumType). */ 00199 /* -------------------------------------------------------------------- */ 00200 00201 typedef enum { 00202 ODT_HD_Min=1000, 00203 ODT_HD_Other=1000, 00204 ODT_HD_Classic=1001, 00205 ODT_HD_Geocentric=1002, 00206 ODT_HD_Max=1999, 00207 ODT_VD_Min=2000, 00208 ODT_VD_Other=2000, 00209 ODT_VD_Orthometric=2001, 00210 ODT_VD_Ellipsoidal=2002, 00211 ODT_VD_AltitudeBarometric=2003, 00212 ODT_VD_Normal=2004, 00213 ODT_VD_GeoidModelDerived=2005, 00214 ODT_VD_Depth=2006, 00215 ODT_VD_Max=2999, 00216 ODT_LD_Min=10000, 00217 ODT_LD_Max=32767 00218 } OGRDatumType; 00219 00220 /* ==================================================================== */ 00221 /* Some "standard" strings. */ 00222 /* ==================================================================== */ 00223 00224 #define SRS_PT_ALBERS_CONIC_EQUAL_AREA \ 00225 "Albers_Conic_Equal_Area" 00226 #define SRS_PT_AZIMUTHAL_EQUIDISTANT "Azimuthal_Equidistant" 00227 #define SRS_PT_CASSINI_SOLDNER "Cassini_Soldner" 00228 #define SRS_PT_CYLINDRICAL_EQUAL_AREA "Cylindrical_Equal_Area" 00229 #define SRS_PT_ECKERT_IV "Eckert_IV" 00230 #define SRS_PT_ECKERT_VI "Eckert_VI" 00231 #define SRS_PT_EQUIDISTANT_CONIC "Equidistant_Conic" 00232 #define SRS_PT_EQUIRECTANGULAR "Equirectangular" 00233 #define SRS_PT_GALL_STEREOGRAPHIC "Gall_Stereographic" 00234 #define SRS_PT_GNOMONIC "Gnomonic" 00235 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR \ 00236 "Hotine_Oblique_Mercator" 00237 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN \ 00238 "Hotine_Oblique_Mercator_Two_Point_Natural_Origin" 00239 #define SRS_PT_LABORDE_OBLIQUE_MERCATOR \ 00240 "Laborde_Oblique_Mercator" 00241 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP \ 00242 "Lambert_Conformal_Conic_1SP" 00243 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP \ 00244 "Lambert_Conformal_Conic_2SP" 00245 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM \ 00246 "Lambert_Conformal_Conic_2SP_Belgium)" 00247 #define SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA \ 00248 "Lambert_Azimuthal_Equal_Area" 00249 #define SRS_PT_MERCATOR_1SP "Mercator_1SP" 00250 #define SRS_PT_MERCATOR_2SP "Mercator_2SP" 00251 #define SRS_PT_MILLER_CYLINDRICAL "Miller_Cylindrical" 00252 #define SRS_PT_MOLLWEIDE "Mollweide" 00253 #define SRS_PT_NEW_ZEALAND_MAP_GRID \ 00254 "New_Zealand_Map_Grid" 00255 #define SRS_PT_OBLIQUE_STEREOGRAPHIC \ 00256 "Oblique_Stereographic" 00257 #define SRS_PT_ORTHOGRAPHIC "Orthographic" 00258 #define SRS_PT_POLAR_STEREOGRAPHIC \ 00259 "Polar_Stereographic" 00260 #define SRS_PT_POLYCONIC "Polyconic" 00261 #define SRS_PT_ROBINSON "Robinson" 00262 #define SRS_PT_SINUSOIDAL "Sinusoidal" 00263 #define SRS_PT_STEREOGRAPHIC "Stereographic" 00264 #define SRS_PT_SWISS_OBLIQUE_CYLINDRICAL \ 00265 "Swiss_Oblique_Cylindrical" 00266 #define SRS_PT_TRANSVERSE_MERCATOR \ 00267 "Transverse_Mercator" 00268 #define SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED \ 00269 "Transverse_Mercator_South_Orientated" 00270 00271 /* special mapinfo variants on Transverse Mercator */ 00272 #define SRS_PT_TRANSVERSE_MERCATOR_MI_22 \ 00273 "Transverse_Mercator_MapInfo_22" 00274 #define SRS_PT_TRANSVERSE_MERCATOR_MI_23 \ 00275 "Transverse_Mercator_MapInfo_23" 00276 #define SRS_PT_TRANSVERSE_MERCATOR_MI_24 \ 00277 "Transverse_Mercator_MapInfo_24" 00278 #define SRS_PT_TRANSVERSE_MERCATOR_MI_25 \ 00279 "Transverse_Mercator_MapInfo_25" 00280 00281 #define SRS_PT_TUNISIA_MINING_GRID \ 00282 "Tunisia_Mining_Grid" 00283 #define SRS_PT_VANDERGRINTEN "VanDerGrinten" 00284 #define SRS_PT_KROVAK "Krovak" 00285 00286 00287 00288 #define SRS_PP_CENTRAL_MERIDIAN "central_meridian" 00289 #define SRS_PP_SCALE_FACTOR "scale_factor" 00290 #define SRS_PP_STANDARD_PARALLEL_1 "standard_parallel_1" 00291 #define SRS_PP_STANDARD_PARALLEL_2 "standard_parallel_2" 00292 #define SRS_PP_PSEUDO_STD_PARALLEL_1 "pseudo_standard_parallel_1" 00293 #define SRS_PP_LONGITUDE_OF_CENTER "longitude_of_center" 00294 #define SRS_PP_LATITUDE_OF_CENTER "latitude_of_center" 00295 #define SRS_PP_LONGITUDE_OF_ORIGIN "longitude_of_origin" 00296 #define SRS_PP_LATITUDE_OF_ORIGIN "latitude_of_origin" 00297 #define SRS_PP_FALSE_EASTING "false_easting" 00298 #define SRS_PP_FALSE_NORTHING "false_northing" 00299 #define SRS_PP_AZIMUTH "azimuth" 00300 #define SRS_PP_LONGITUDE_OF_POINT_1 "longitude_of_point_1" 00301 #define SRS_PP_LATITUDE_OF_POINT_1 "latitude_of_point_1" 00302 #define SRS_PP_LONGITUDE_OF_POINT_2 "longitude_of_point_2" 00303 #define SRS_PP_LATITUDE_OF_POINT_2 "latitude_of_point_2" 00304 #define SRS_PP_LONGITUDE_OF_POINT_3 "longitude_of_point_3" 00305 #define SRS_PP_LATITUDE_OF_POINT_3 "latitude_of_point_3" 00306 #define SRS_PP_RECTIFIED_GRID_ANGLE "rectified_grid_angle" 00307 #define SRS_PP_LANDSAT_NUMBER "landsat_number" 00308 #define SRS_PP_PATH_NUMBER "path_number" 00309 #define SRS_PP_PERSPECTIVE_POINT_HEIGHT "perspective_point_height" 00310 #define SRS_PP_FIPSZONE "fipszone" 00311 #define SRS_PP_ZONE "zone" 00312 00313 #define SRS_UL_METER "Meter" 00314 #define SRS_UL_FOOT "Foot (International)" /* or just "FOOT"? */ 00315 #define SRS_UL_FOOT_CONV "0.3048" 00316 #define SRS_UL_US_FOOT "U.S. Foot" /* or "US survey foot" */ 00317 #define SRS_UL_US_FOOT_CONV "0.3048006" 00318 #define SRS_UL_NAUTICAL_MILE "Nautical Mile" 00319 #define SRS_UL_NAUTICAL_MILE_CONV "1852.0" 00320 #define SRS_UL_LINK "Link" /* Based on US Foot */ 00321 #define SRS_UL_LINK_CONV "0.20116684023368047" 00322 #define SRS_UL_CHAIN "Chain" /* based on US Foot */ 00323 #define SRS_UL_CHAIN_CONV "2.0116684023368047" 00324 #define SRS_UL_ROD "Rod" /* based on US Foot */ 00325 #define SRS_UL_ROD_CONV "5.02921005842012" 00326 00327 #define SRS_UA_DEGREE "degree" 00328 #define SRS_UA_DEGREE_CONV "0.0174532925199433" 00329 #define SRS_UA_RADIAN "radian" 00330 00331 #define SRS_PM_GREENWICH "Greenwich" 00332 00333 #define SRS_DN_NAD27 "North_American_Datum_1927" 00334 #define SRS_DN_NAD83 "North_American_Datum_1983" 00335 #define SRS_DN_WGS72 "WGS_1972" 00336 #define SRS_DN_WGS84 "WGS_1984" 00337 00338 #define SRS_WGS84_SEMIMAJOR 6378137.0 00339 #define SRS_WGS84_INVFLATTENING 298.257223563 00340 00341 /* -------------------------------------------------------------------- */ 00342 /* C Wrappers for C++ objects and methods. */ 00343 /* -------------------------------------------------------------------- */ 00344 #ifndef _DEFINED_OGRSpatialReferenceH 00345 #define _DEFINED_OGRSpatialReferenceH 00346 00347 typedef void *OGRSpatialReferenceH; 00348 typedef void *OGRCoordinateTransformationH; 00349 00350 #endif 00351 00352 00353 OGRSpatialReferenceH CPL_DLL 00354 OSRNewSpatialReference( const char * /* = NULL */); 00355 OGRSpatialReferenceH CPL_DLL OSRCloneGeogCS( OGRSpatialReferenceH ); 00356 OGRSpatialReferenceH CPL_DLL OSRCloneCS( OGRSpatialReferenceH ); 00357 void CPL_DLL OSRDestroySpatialReference( OGRSpatialReferenceH ); 00358 00359 int CPL_DLL OSRReference( OGRSpatialReferenceH ); 00360 int CPL_DLL OSRDereference( OGRSpatialReferenceH ); 00361 00362 OGRErr CPL_DLL OSRValidate( OGRSpatialReferenceH ); 00363 OGRErr CPL_DLL OSRFixupOrdering( OGRSpatialReferenceH ); 00364 OGRErr CPL_DLL OSRFixup( OGRSpatialReferenceH ); 00365 OGRErr CPL_DLL OSRStripCTParms( OGRSpatialReferenceH ); 00366 00367 OGRErr CPL_DLL OSRImportFromEPSG( OGRSpatialReferenceH, int ); 00368 OGRErr CPL_DLL OSRImportFromWkt( OGRSpatialReferenceH, char ** ); 00369 OGRErr CPL_DLL OSRImportFromProj4( OGRSpatialReferenceH, const char *); 00370 OGRErr CPL_DLL OSRImportFromESRI( OGRSpatialReferenceH, char **); 00371 OGRErr CPL_DLL OSRImportFromPCI( OGRSpatialReferenceH hSRS, const char *, 00372 const char *, double * ); 00373 OGRErr CPL_DLL OSRImportFromUSGS( OGRSpatialReferenceH, 00374 long, long, double *, long); 00375 OGRErr CPL_DLL OSRImportFromXML( OGRSpatialReferenceH, const char * ); 00376 OGRErr CPL_DLL OSRImportFromDict( OGRSpatialReferenceH, const char *, 00377 const char * ); 00378 OGRErr CPL_DLL OSRExportToWkt( OGRSpatialReferenceH, char ** ); 00379 OGRErr CPL_DLL OSRExportToPrettyWkt( OGRSpatialReferenceH, char **, int); 00380 OGRErr CPL_DLL OSRExportToProj4( OGRSpatialReferenceH, char **); 00381 OGRErr CPL_DLL OSRExportToPCI( OGRSpatialReferenceH, char **, char **, 00382 double ** ); 00383 OGRErr CPL_DLL OSRExportToUSGS( OGRSpatialReferenceH, long *, long *, 00384 double **, long * ); 00385 OGRErr CPL_DLL OSRExportToXML( OGRSpatialReferenceH, char **, const char * ); 00386 00387 OGRErr CPL_DLL OSRMorphToESRI( OGRSpatialReferenceH ); 00388 OGRErr CPL_DLL OSRMorphFromESRI( OGRSpatialReferenceH ); 00389 00390 OGRErr CPL_DLL OSRSetAttrValue( OGRSpatialReferenceH hSRS, 00391 const char * pszNodePath, 00392 const char * pszNewNodeValue ); 00393 const char CPL_DLL * OSRGetAttrValue( OGRSpatialReferenceH hSRS, 00394 const char * pszName, int iChild /* = 0 */ ); 00395 00396 OGRErr CPL_DLL OSRSetAngularUnits( OGRSpatialReferenceH, const char *, double ); 00397 double CPL_DLL OSRGetAngularUnits( OGRSpatialReferenceH, char ** ); 00398 OGRErr CPL_DLL OSRSetLinearUnits( OGRSpatialReferenceH, const char *, double ); 00399 double CPL_DLL OSRGetLinearUnits( OGRSpatialReferenceH, char ** ); 00400 00401 double CPL_DLL OSRGetPrimeMeridian( OGRSpatialReferenceH, char ** ); 00402 00403 int CPL_DLL OSRIsGeographic( OGRSpatialReferenceH ); 00404 int CPL_DLL OSRIsLocal( OGRSpatialReferenceH ); 00405 int CPL_DLL OSRIsProjected( OGRSpatialReferenceH ); 00406 int CPL_DLL OSRIsSameGeogCS( OGRSpatialReferenceH, OGRSpatialReferenceH ); 00407 int CPL_DLL OSRIsSame( OGRSpatialReferenceH, OGRSpatialReferenceH ); 00408 00409 OGRErr CPL_DLL OSRSetLocalCS( OGRSpatialReferenceH hSRS, const char *pszName ); 00410 OGRErr CPL_DLL OSRSetProjCS( OGRSpatialReferenceH hSRS, const char * pszName ); 00411 OGRErr CPL_DLL OSRSetWellKnownGeogCS( OGRSpatialReferenceH hSRS, 00412 const char * pszName ); 00413 OGRErr CPL_DLL OSRSetFromUserInput( OGRSpatialReferenceH hSRS, 00414 const char * ); 00415 OGRErr CPL_DLL OSRCopyGeogCSFrom( OGRSpatialReferenceH hSRS, 00416 OGRSpatialReferenceH hSrcSRS ); 00417 OGRErr CPL_DLL OSRSetTOWGS84( OGRSpatialReferenceH hSRS, 00418 double, double, double, 00419 double, double, double, double ); 00420 OGRErr CPL_DLL OSRGetTOWGS84( OGRSpatialReferenceH hSRS, double *, int ); 00421 00422 00423 OGRErr CPL_DLL OSRSetGeogCS( OGRSpatialReferenceH hSRS, 00424 const char * pszGeogName, 00425 const char * pszDatumName, 00426 const char * pszEllipsoidName, 00427 double dfSemiMajor, double dfInvFlattening, 00428 const char * pszPMName /* = NULL */, 00429 double dfPMOffset /* = 0.0 */, 00430 const char * pszUnits /* = NULL */, 00431 double dfConvertToRadians /* = 0.0 */ ); 00432 00433 double CPL_DLL OSRGetSemiMajor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); 00434 double CPL_DLL OSRGetSemiMinor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); 00435 double CPL_DLL OSRGetInvFlattening( OGRSpatialReferenceH, OGRErr * /*=NULL*/); 00436 00437 OGRErr CPL_DLL OSRSetAuthority( OGRSpatialReferenceH hSRS, 00438 const char * pszTargetKey, 00439 const char * pszAuthority, 00440 int nCode ); 00441 const char CPL_DLL *OSRGetAuthorityCode( OGRSpatialReferenceH hSRS, 00442 const char * pszTargetKey ); 00443 const char CPL_DLL *OSRGetAuthorityName( OGRSpatialReferenceH hSRS, 00444 const char * pszTargetKey ); 00445 OGRErr CPL_DLL OSRSetProjection( OGRSpatialReferenceH, const char * ); 00446 OGRErr CPL_DLL OSRSetProjParm( OGRSpatialReferenceH, const char *, double ); 00447 double CPL_DLL OSRGetProjParm( OGRSpatialReferenceH hSRS, 00448 const char * pszParmName, 00449 double dfDefault /* = 0.0 */, 00450 OGRErr * /* = NULL */ ); 00451 OGRErr CPL_DLL OSRSetNormProjParm( OGRSpatialReferenceH, const char *, double); 00452 double CPL_DLL OSRGetNormProjParm( OGRSpatialReferenceH hSRS, 00453 const char * pszParmName, 00454 double dfDefault /* = 0.0 */, 00455 OGRErr * /* = NULL */ ); 00456 00457 OGRErr CPL_DLL OSRSetUTM( OGRSpatialReferenceH hSRS, int nZone, int bNorth ); 00458 int CPL_DLL OSRGetUTMZone( OGRSpatialReferenceH hSRS, int *pbNorth ); 00459 OGRErr CPL_DLL OSRSetStatePlane( OGRSpatialReferenceH hSRS, 00460 int nZone, int bNAD83 ); 00461 OGRErr CPL_DLL OSRSetStatePlaneWithUnits( OGRSpatialReferenceH hSRS, 00462 int nZone, int bNAD83, 00463 const char *pszOverrideUnitName, 00464 double dfOverrideUnit ); 00465 OGRErr CPL_DLL OSRAutoIdentifyEPSG( OGRSpatialReferenceH hSRS ); 00466 00468 OGRErr CPL_DLL OSRSetACEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00469 double dfCenterLat, double dfCenterLong, 00470 double dfFalseEasting, double dfFalseNorthing ); 00471 00473 OGRErr CPL_DLL OSRSetAE( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00474 double dfFalseEasting, double dfFalseNorthing ); 00475 00477 OGRErr CPL_DLL OSRSetCEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfCentralMeridian, 00478 double dfFalseEasting, double dfFalseNorthing ); 00479 00481 OGRErr CPL_DLL OSRSetCS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00482 double dfFalseEasting, double dfFalseNorthing ); 00483 00485 OGRErr CPL_DLL OSRSetEC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00486 double dfCenterLat, double dfCenterLong, 00487 double dfFalseEasting, double dfFalseNorthing ); 00488 00490 OGRErr CPL_DLL OSRSetEckertIV( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00491 double dfFalseEasting, double dfFalseNorthing ); 00492 00494 OGRErr CPL_DLL OSRSetEckertVI( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00495 double dfFalseEasting, double dfFalseNorthing ); 00496 00498 OGRErr CPL_DLL OSRSetEquirectangular(OGRSpatialReferenceH hSRS, 00499 double dfCenterLat, double dfCenterLong, 00500 double dfFalseEasting, double dfFalseNorthing ); 00501 00503 OGRErr CPL_DLL OSRSetGS( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00504 double dfFalseEasting, double dfFalseNorthing ); 00505 00507 OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS, 00508 double dfCenterLat, double dfCenterLong, 00509 double dfFalseEasting, double dfFalseNorthing ); 00510 00512 OGRErr CPL_DLL OSRSetHOM( OGRSpatialReferenceH hSRS, 00513 double dfCenterLat, double dfCenterLong, 00514 double dfAzimuth, double dfRectToSkew, 00515 double dfScale, 00516 double dfFalseEasting, double dfFalseNorthing ); 00517 00519 OGRErr CPL_DLL OSRSetHOM2PNO( OGRSpatialReferenceH hSRS, double dfCenterLat, 00520 double dfLat1, double dfLong1, 00521 double dfLat2, double dfLong2, 00522 double dfScale, 00523 double dfFalseEasting, double dfFalseNorthing ); 00524 00526 OGRErr CPL_DLL OSRSetKrovak( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00527 double dfAzimuth, double dfPseudoStdParallelLat, 00528 double dfScale, 00529 double dfFalseEasting, double dfFalseNorthing ); 00530 00532 OGRErr CPL_DLL OSRSetLAEA( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00533 double dfFalseEasting, double dfFalseNorthing ); 00534 00536 OGRErr CPL_DLL OSRSetLCC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00537 double dfCenterLat, double dfCenterLong, 00538 double dfFalseEasting, double dfFalseNorthing ); 00539 00541 OGRErr CPL_DLL OSRSetLCC1SP( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00542 double dfScale, 00543 double dfFalseEasting, double dfFalseNorthing ); 00544 00546 OGRErr CPL_DLL OSRSetLCCB( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00547 double dfCenterLat, double dfCenterLong, 00548 double dfFalseEasting, double dfFalseNorthing ); 00549 00551 OGRErr CPL_DLL OSRSetMC( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00552 double dfFalseEasting, double dfFalseNorthing ); 00553 00555 OGRErr CPL_DLL OSRSetMercator( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00556 double dfScale, 00557 double dfFalseEasting, double dfFalseNorthing ); 00558 00560 OGRErr CPL_DLL OSRSetMollweide( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00561 double dfFalseEasting, double dfFalseNorthing ); 00562 00564 OGRErr CPL_DLL OSRSetNZMG( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00565 double dfFalseEasting, double dfFalseNorthing ); 00566 00568 OGRErr CPL_DLL OSRSetOS( OGRSpatialReferenceH hSRS, double dfOriginLat, double dfCMeridian, 00569 double dfScale, 00570 double dfFalseEasting,double dfFalseNorthing); 00571 00573 OGRErr CPL_DLL OSRSetOrthographic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00574 double dfFalseEasting,double dfFalseNorthing); 00575 00577 OGRErr CPL_DLL OSRSetPolyconic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00578 double dfFalseEasting, double dfFalseNorthing ); 00579 00581 OGRErr CPL_DLL OSRSetPS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00582 double dfScale, 00583 double dfFalseEasting, double dfFalseNorthing); 00584 00586 OGRErr CPL_DLL OSRSetRobinson( OGRSpatialReferenceH hSRS, double dfCenterLong, 00587 double dfFalseEasting, double dfFalseNorthing ); 00588 00590 OGRErr CPL_DLL OSRSetSinusoidal( OGRSpatialReferenceH hSRS, double dfCenterLong, 00591 double dfFalseEasting, double dfFalseNorthing ); 00592 00594 OGRErr CPL_DLL OSRSetStereographic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00595 double dfScale, 00596 double dfFalseEasting,double dfFalseNorthing); 00597 00599 OGRErr CPL_DLL OSRSetSOC( OGRSpatialReferenceH hSRS, double dfLatitudeOfOrigin, double dfCentralMeridian, 00600 double dfFalseEasting, double dfFalseNorthing ); 00601 00603 OGRErr CPL_DLL OSRSetTM( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00604 double dfScale, 00605 double dfFalseEasting, double dfFalseNorthing ); 00606 00608 OGRErr CPL_DLL OSRSetTMVariant( 00609 OGRSpatialReferenceH hSRS, const char *pszVariantName, 00610 double dfCenterLat, double dfCenterLong, 00611 double dfScale, 00612 double dfFalseEasting, double dfFalseNorthing ); 00613 00615 OGRErr CPL_DLL OSRSetTMG( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00616 double dfFalseEasting, double dfFalseNorthing ); 00617 00619 OGRErr CPL_DLL OSRSetTMSO( OGRSpatialReferenceH hSRS, 00620 double dfCenterLat, double dfCenterLong, 00621 double dfScale, 00622 double dfFalseEasting, double dfFalseNorthing ); 00623 00625 OGRErr CPL_DLL OSRSetVDG( OGRSpatialReferenceH hSRS, 00626 double dfCenterLong, 00627 double dfFalseEasting, double dfFalseNorthing ); 00628 00629 /* -------------------------------------------------------------------- */ 00630 /* OGRCoordinateTransform C API. */ 00631 /* -------------------------------------------------------------------- */ 00632 OGRCoordinateTransformationH CPL_DLL 00633 OCTNewCoordinateTransformation( OGRSpatialReferenceH hSourceSRS, 00634 OGRSpatialReferenceH hTargetSRS ); 00635 void CPL_DLL 00636 OCTDestroyCoordinateTransformation( OGRCoordinateTransformationH ); 00637 00638 int CPL_DLL OCTTransform( OGRCoordinateTransformationH hCT, 00639 int nCount, double *x, double *y, double *z ); 00640 int CPL_DLL OCTTransformEx( OGRCoordinateTransformationH hCT, 00641 int nCount, double *x, double *y, double *z, 00642 int *pabSuccess ); 00643 00644 /* this is really private to OGR. */ 00645 char *OCTProj4Normalize( const char *pszProj4Src ); 00646 00647 /* -------------------------------------------------------------------- */ 00648 /* Projection transform dictionary query. */ 00649 /* -------------------------------------------------------------------- */ 00650 00651 char CPL_DLL ** OPTGetProjectionMethods(); 00652 char CPL_DLL ** OPTGetParameterList( const char * pszProjectionMethod, 00653 char ** ppszUserName ); 00654 int CPL_DLL OPTGetParameterInfo( const char * pszProjectionMethod, 00655 const char * pszParameterName, 00656 char ** ppszUserName, 00657 char ** ppszType, 00658 double *pdfDefaultValue ); 00659 00660 CPL_C_END 00661 00662 #endif /* ndef _OGR_SRS_API_H_INCLUDED */

Generated on Mon Aug 9 12:08:49 2004 for OGR by doxygen 1.3.8