OGR
|
00001 /****************************************************************************** 00002 * $Id: ogr_srs_api.h 17970 2009-11-06 20:00:29Z warmerdam $ 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 * 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 #ifndef _OGR_SRS_API_H_INCLUDED 00031 #define _OGR_SRS_API_H_INCLUDED 00032 00033 #ifndef SWIG 00034 #include "ogr_core.h" 00035 00036 CPL_C_START 00037 00046 /* -------------------------------------------------------------------- */ 00047 /* Axis orientations (corresponds to CS_AxisOrientationEnum). */ 00048 /* -------------------------------------------------------------------- */ 00049 typedef enum { 00050 OAO_Other=0, 00051 OAO_North=1, 00052 OAO_South=2, 00053 OAO_East=3, 00054 OAO_West=4, 00055 OAO_Up=5, 00056 OAO_Down=6 00057 } OGRAxisOrientation; 00058 00059 const char CPL_DLL *OSRAxisEnumToName( OGRAxisOrientation eOrientation ); 00060 00061 /* -------------------------------------------------------------------- */ 00062 /* Datum types (corresponds to CS_DatumType). */ 00063 /* -------------------------------------------------------------------- */ 00064 00065 typedef enum { 00066 ODT_HD_Min=1000, 00067 ODT_HD_Other=1000, 00068 ODT_HD_Classic=1001, 00069 ODT_HD_Geocentric=1002, 00070 ODT_HD_Max=1999, 00071 ODT_VD_Min=2000, 00072 ODT_VD_Other=2000, 00073 ODT_VD_Orthometric=2001, 00074 ODT_VD_Ellipsoidal=2002, 00075 ODT_VD_AltitudeBarometric=2003, 00076 ODT_VD_Normal=2004, 00077 ODT_VD_GeoidModelDerived=2005, 00078 ODT_VD_Depth=2006, 00079 ODT_VD_Max=2999, 00080 ODT_LD_Min=10000, 00081 ODT_LD_Max=32767 00082 } OGRDatumType; 00083 00084 #endif // ndef SWIG 00085 00086 /* ==================================================================== */ 00087 /* Some standard WKT geographic coordinate systems. */ 00088 /* ==================================================================== */ 00089 00090 #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\"]]" 00091 00092 /* ==================================================================== */ 00093 /* Some "standard" strings. */ 00094 /* ==================================================================== */ 00095 00096 #define SRS_PT_ALBERS_CONIC_EQUAL_AREA \ 00097 "Albers_Conic_Equal_Area" 00098 #define SRS_PT_AZIMUTHAL_EQUIDISTANT "Azimuthal_Equidistant" 00099 #define SRS_PT_CASSINI_SOLDNER "Cassini_Soldner" 00100 #define SRS_PT_CYLINDRICAL_EQUAL_AREA "Cylindrical_Equal_Area" 00101 #define SRS_PT_BONNE "Bonne" 00102 #define SRS_PT_ECKERT_I "Eckert_I" 00103 #define SRS_PT_ECKERT_II "Eckert_II" 00104 #define SRS_PT_ECKERT_III "Eckert_III" 00105 #define SRS_PT_ECKERT_IV "Eckert_IV" 00106 #define SRS_PT_ECKERT_V "Eckert_V" 00107 #define SRS_PT_ECKERT_VI "Eckert_VI" 00108 #define SRS_PT_EQUIDISTANT_CONIC \ 00109 "Equidistant_Conic" 00110 #define SRS_PT_EQUIRECTANGULAR "Equirectangular" 00111 #define SRS_PT_GALL_STEREOGRAPHIC \ 00112 "Gall_Stereographic" 00113 #define SRS_PT_GAUSSSCHREIBERTMERCATOR \ 00114 "Gauss_Schreiber_Transverse_Mercator" 00115 #define SRS_PT_GEOSTATIONARY_SATELLITE \ 00116 "Geostationary_Satellite" 00117 #define SRS_PT_GOODE_HOMOLOSINE "Goode_Homolosine" 00118 #define SRS_PT_GNOMONIC "Gnomonic" 00119 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR \ 00120 "Hotine_Oblique_Mercator" 00121 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN \ 00122 "Hotine_Oblique_Mercator_Two_Point_Natural_Origin" 00123 #define SRS_PT_LABORDE_OBLIQUE_MERCATOR \ 00124 "Laborde_Oblique_Mercator" 00125 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP \ 00126 "Lambert_Conformal_Conic_1SP" 00127 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP \ 00128 "Lambert_Conformal_Conic_2SP" 00129 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM \ 00130 "Lambert_Conformal_Conic_2SP_Belgium" 00131 #define SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA \ 00132 "Lambert_Azimuthal_Equal_Area" 00133 #define SRS_PT_MERCATOR_1SP "Mercator_1SP" 00134 #define SRS_PT_MERCATOR_2SP "Mercator_2SP" 00135 #define SRS_PT_MILLER_CYLINDRICAL "Miller_Cylindrical" 00136 #define SRS_PT_MOLLWEIDE "Mollweide" 00137 #define SRS_PT_NEW_ZEALAND_MAP_GRID \ 00138 "New_Zealand_Map_Grid" 00139 #define SRS_PT_OBLIQUE_STEREOGRAPHIC \ 00140 "Oblique_Stereographic" 00141 #define SRS_PT_ORTHOGRAPHIC "Orthographic" 00142 #define SRS_PT_POLAR_STEREOGRAPHIC \ 00143 "Polar_Stereographic" 00144 #define SRS_PT_POLYCONIC "Polyconic" 00145 #define SRS_PT_ROBINSON "Robinson" 00146 #define SRS_PT_SINUSOIDAL "Sinusoidal" 00147 #define SRS_PT_STEREOGRAPHIC "Stereographic" 00148 #define SRS_PT_SWISS_OBLIQUE_CYLINDRICAL \ 00149 "Swiss_Oblique_Cylindrical" 00150 #define SRS_PT_TRANSVERSE_MERCATOR \ 00151 "Transverse_Mercator" 00152 #define SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED \ 00153 "Transverse_Mercator_South_Orientated" 00154 00155 /* special mapinfo variants on Transverse Mercator */ 00156 #define SRS_PT_TRANSVERSE_MERCATOR_MI_21 \ 00157 "Transverse_Mercator_MapInfo_21" 00158 #define SRS_PT_TRANSVERSE_MERCATOR_MI_22 \ 00159 "Transverse_Mercator_MapInfo_22" 00160 #define SRS_PT_TRANSVERSE_MERCATOR_MI_23 \ 00161 "Transverse_Mercator_MapInfo_23" 00162 #define SRS_PT_TRANSVERSE_MERCATOR_MI_24 \ 00163 "Transverse_Mercator_MapInfo_24" 00164 #define SRS_PT_TRANSVERSE_MERCATOR_MI_25 \ 00165 "Transverse_Mercator_MapInfo_25" 00166 00167 #define SRS_PT_TUNISIA_MINING_GRID \ 00168 "Tunisia_Mining_Grid" 00169 #define SRS_PT_TWO_POINT_EQUIDISTANT \ 00170 "Two_Point_Equidistant" 00171 #define SRS_PT_VANDERGRINTEN "VanDerGrinten" 00172 #define SRS_PT_KROVAK "Krovak" 00173 #define SRS_PT_IMW_POLYCONIC "International_Map_of_the_World_Polyconic" 00174 #define SRS_PT_WAGNER_I "Wagner_I" 00175 #define SRS_PT_WAGNER_II "Wagner_II" 00176 #define SRS_PT_WAGNER_III "Wagner_III" 00177 #define SRS_PT_WAGNER_IV "Wagner_IV" 00178 #define SRS_PT_WAGNER_V "Wagner_V" 00179 #define SRS_PT_WAGNER_VI "Wagner_VI" 00180 #define SRS_PT_WAGNER_VII "Wagner_VII" 00181 00182 00183 #define SRS_PP_CENTRAL_MERIDIAN "central_meridian" 00184 #define SRS_PP_SCALE_FACTOR "scale_factor" 00185 #define SRS_PP_STANDARD_PARALLEL_1 "standard_parallel_1" 00186 #define SRS_PP_STANDARD_PARALLEL_2 "standard_parallel_2" 00187 #define SRS_PP_PSEUDO_STD_PARALLEL_1 "pseudo_standard_parallel_1" 00188 #define SRS_PP_LONGITUDE_OF_CENTER "longitude_of_center" 00189 #define SRS_PP_LATITUDE_OF_CENTER "latitude_of_center" 00190 #define SRS_PP_LONGITUDE_OF_ORIGIN "longitude_of_origin" 00191 #define SRS_PP_LATITUDE_OF_ORIGIN "latitude_of_origin" 00192 #define SRS_PP_FALSE_EASTING "false_easting" 00193 #define SRS_PP_FALSE_NORTHING "false_northing" 00194 #define SRS_PP_AZIMUTH "azimuth" 00195 #define SRS_PP_LONGITUDE_OF_POINT_1 "longitude_of_point_1" 00196 #define SRS_PP_LATITUDE_OF_POINT_1 "latitude_of_point_1" 00197 #define SRS_PP_LONGITUDE_OF_POINT_2 "longitude_of_point_2" 00198 #define SRS_PP_LATITUDE_OF_POINT_2 "latitude_of_point_2" 00199 #define SRS_PP_LONGITUDE_OF_POINT_3 "longitude_of_point_3" 00200 #define SRS_PP_LATITUDE_OF_POINT_3 "latitude_of_point_3" 00201 #define SRS_PP_RECTIFIED_GRID_ANGLE "rectified_grid_angle" 00202 #define SRS_PP_LANDSAT_NUMBER "landsat_number" 00203 #define SRS_PP_PATH_NUMBER "path_number" 00204 #define SRS_PP_PERSPECTIVE_POINT_HEIGHT "perspective_point_height" 00205 #define SRS_PP_SATELLITE_HEIGHT "satellite_height" 00206 #define SRS_PP_FIPSZONE "fipszone" 00207 #define SRS_PP_ZONE "zone" 00208 #define SRS_PP_LATITUDE_OF_1ST_POINT "Latitude_Of_1st_Point" 00209 #define SRS_PP_LONGITUDE_OF_1ST_POINT "Longitude_Of_1st_Point" 00210 #define SRS_PP_LATITUDE_OF_2ND_POINT "Latitude_Of_2nd_Point" 00211 #define SRS_PP_LONGITUDE_OF_2ND_POINT "Longitude_Of_2nd_Point" 00212 00213 #define SRS_UL_METER "Meter" 00214 #define SRS_UL_FOOT "Foot (International)" /* or just "FOOT"? */ 00215 #define SRS_UL_FOOT_CONV "0.3048" 00216 #define SRS_UL_US_FOOT "Foot_US" /* or "US survey foot" from EPSG */ 00217 #define SRS_UL_US_FOOT_CONV "0.3048006096012192" 00218 #define SRS_UL_NAUTICAL_MILE "Nautical Mile" 00219 #define SRS_UL_NAUTICAL_MILE_CONV "1852.0" 00220 #define SRS_UL_LINK "Link" /* Based on US Foot */ 00221 #define SRS_UL_LINK_CONV "0.20116684023368047" 00222 #define SRS_UL_CHAIN "Chain" /* based on US Foot */ 00223 #define SRS_UL_CHAIN_CONV "20.116684023368047" 00224 #define SRS_UL_ROD "Rod" /* based on US Foot */ 00225 #define SRS_UL_ROD_CONV "5.02921005842012" 00226 00227 #define SRS_UA_DEGREE "degree" 00228 #define SRS_UA_DEGREE_CONV "0.0174532925199433" 00229 #define SRS_UA_RADIAN "radian" 00230 00231 #define SRS_PM_GREENWICH "Greenwich" 00232 00233 #define SRS_DN_NAD27 "North_American_Datum_1927" 00234 #define SRS_DN_NAD83 "North_American_Datum_1983" 00235 #define SRS_DN_WGS72 "WGS_1972" 00236 #define SRS_DN_WGS84 "WGS_1984" 00237 00238 #define SRS_WGS84_SEMIMAJOR 6378137.0 00239 #define SRS_WGS84_INVFLATTENING 298.257223563 00240 00241 #ifndef SWIG 00242 /* -------------------------------------------------------------------- */ 00243 /* C Wrappers for C++ objects and methods. */ 00244 /* -------------------------------------------------------------------- */ 00245 #ifndef _DEFINED_OGRSpatialReferenceH 00246 #define _DEFINED_OGRSpatialReferenceH 00247 00248 #ifdef DEBUG 00249 typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH; 00250 typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH; 00251 #else 00252 typedef void *OGRSpatialReferenceH; 00253 typedef void *OGRCoordinateTransformationH; 00254 #endif 00255 00256 #endif 00257 00258 00259 OGRSpatialReferenceH CPL_DLL CPL_STDCALL 00260 OSRNewSpatialReference( const char * /* = NULL */); 00261 OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRCloneGeogCS( OGRSpatialReferenceH ); 00262 OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRClone( OGRSpatialReferenceH ); 00263 void CPL_DLL CPL_STDCALL OSRDestroySpatialReference( OGRSpatialReferenceH ); 00264 00265 int CPL_DLL OSRReference( OGRSpatialReferenceH ); 00266 int CPL_DLL OSRDereference( OGRSpatialReferenceH ); 00267 void CPL_DLL OSRRelease( OGRSpatialReferenceH ); 00268 00269 OGRErr CPL_DLL OSRValidate( OGRSpatialReferenceH ); 00270 OGRErr CPL_DLL OSRFixupOrdering( OGRSpatialReferenceH ); 00271 OGRErr CPL_DLL OSRFixup( OGRSpatialReferenceH ); 00272 OGRErr CPL_DLL OSRStripCTParms( OGRSpatialReferenceH ); 00273 00274 OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSG( OGRSpatialReferenceH, int ); 00275 OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSGA( OGRSpatialReferenceH, int ); 00276 OGRErr CPL_DLL OSRImportFromWkt( OGRSpatialReferenceH, char ** ); 00277 OGRErr CPL_DLL OSRImportFromProj4( OGRSpatialReferenceH, const char *); 00278 OGRErr CPL_DLL OSRImportFromESRI( OGRSpatialReferenceH, char **); 00279 OGRErr CPL_DLL OSRImportFromPCI( OGRSpatialReferenceH hSRS, const char *, 00280 const char *, double * ); 00281 OGRErr CPL_DLL OSRImportFromUSGS( OGRSpatialReferenceH, 00282 long, long, double *, long); 00283 OGRErr CPL_DLL OSRImportFromXML( OGRSpatialReferenceH, const char * ); 00284 OGRErr CPL_DLL OSRImportFromDict( OGRSpatialReferenceH, const char *, 00285 const char * ); 00286 OGRErr CPL_DLL OSRImportFromPanorama( OGRSpatialReferenceH, long, long, long, 00287 double * ); 00288 OGRErr OSRImportFromOzi( OGRSpatialReferenceH , const char *, const char *, 00289 const char * ); 00290 OGRErr CPL_DLL OSRImportFromMICoordSys( OGRSpatialReferenceH, const char *); 00291 OGRErr CPL_DLL OSRImportFromUrl( OGRSpatialReferenceH, const char * ); 00292 00293 OGRErr CPL_DLL CPL_STDCALL OSRExportToWkt( OGRSpatialReferenceH, char ** ); 00294 OGRErr CPL_DLL CPL_STDCALL OSRExportToPrettyWkt( OGRSpatialReferenceH, char **, int); 00295 OGRErr CPL_DLL CPL_STDCALL OSRExportToProj4( OGRSpatialReferenceH, char **); 00296 OGRErr CPL_DLL OSRExportToPCI( OGRSpatialReferenceH, char **, char **, 00297 double ** ); 00298 OGRErr CPL_DLL OSRExportToUSGS( OGRSpatialReferenceH, long *, long *, 00299 double **, long * ); 00300 OGRErr CPL_DLL OSRExportToXML( OGRSpatialReferenceH, char **, const char * ); 00301 OGRErr CPL_DLL OSRExportToPanorama( OGRSpatialReferenceH, long *, long *, 00302 long *, long *, double * ); 00303 OGRErr CPL_DLL OSRExportToMICoordSys( OGRSpatialReferenceH, char ** ); 00304 00305 OGRErr CPL_DLL OSRMorphToESRI( OGRSpatialReferenceH ); 00306 OGRErr CPL_DLL OSRMorphFromESRI( OGRSpatialReferenceH ); 00307 00308 OGRErr CPL_DLL CPL_STDCALL OSRSetAttrValue( OGRSpatialReferenceH hSRS, 00309 const char * pszNodePath, 00310 const char * pszNewNodeValue ); 00311 const char CPL_DLL * CPL_STDCALL OSRGetAttrValue( OGRSpatialReferenceH hSRS, 00312 const char * pszName, int iChild /* = 0 */ ); 00313 00314 OGRErr CPL_DLL OSRSetAngularUnits( OGRSpatialReferenceH, const char *, double ); 00315 double CPL_DLL OSRGetAngularUnits( OGRSpatialReferenceH, char ** ); 00316 OGRErr CPL_DLL OSRSetLinearUnits( OGRSpatialReferenceH, const char *, double ); 00317 OGRErr CPL_DLL OSRSetLinearUnitsAndUpdateParameters( 00318 OGRSpatialReferenceH, const char *, double ); 00319 double CPL_DLL OSRGetLinearUnits( OGRSpatialReferenceH, char ** ); 00320 00321 double CPL_DLL OSRGetPrimeMeridian( OGRSpatialReferenceH, char ** ); 00322 00323 int CPL_DLL OSRIsGeographic( OGRSpatialReferenceH ); 00324 int CPL_DLL OSRIsLocal( OGRSpatialReferenceH ); 00325 int CPL_DLL OSRIsProjected( OGRSpatialReferenceH ); 00326 int CPL_DLL OSRIsSameGeogCS( OGRSpatialReferenceH, OGRSpatialReferenceH ); 00327 int CPL_DLL OSRIsSame( OGRSpatialReferenceH, OGRSpatialReferenceH ); 00328 00329 OGRErr CPL_DLL OSRSetLocalCS( OGRSpatialReferenceH hSRS, const char *pszName ); 00330 OGRErr CPL_DLL OSRSetProjCS( OGRSpatialReferenceH hSRS, const char * pszName ); 00331 OGRErr CPL_DLL OSRSetWellKnownGeogCS( OGRSpatialReferenceH hSRS, 00332 const char * pszName ); 00333 OGRErr CPL_DLL CPL_STDCALL OSRSetFromUserInput( OGRSpatialReferenceH hSRS, 00334 const char * ); 00335 OGRErr CPL_DLL OSRCopyGeogCSFrom( OGRSpatialReferenceH hSRS, 00336 OGRSpatialReferenceH hSrcSRS ); 00337 OGRErr CPL_DLL OSRSetTOWGS84( OGRSpatialReferenceH hSRS, 00338 double, double, double, 00339 double, double, double, double ); 00340 OGRErr CPL_DLL OSRGetTOWGS84( OGRSpatialReferenceH hSRS, double *, int ); 00341 00342 00343 OGRErr CPL_DLL OSRSetGeogCS( OGRSpatialReferenceH hSRS, 00344 const char * pszGeogName, 00345 const char * pszDatumName, 00346 const char * pszEllipsoidName, 00347 double dfSemiMajor, double dfInvFlattening, 00348 const char * pszPMName /* = NULL */, 00349 double dfPMOffset /* = 0.0 */, 00350 const char * pszUnits /* = NULL */, 00351 double dfConvertToRadians /* = 0.0 */ ); 00352 00353 double CPL_DLL OSRGetSemiMajor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); 00354 double CPL_DLL OSRGetSemiMinor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); 00355 double CPL_DLL OSRGetInvFlattening( OGRSpatialReferenceH, OGRErr * /*=NULL*/); 00356 00357 OGRErr CPL_DLL OSRSetAuthority( OGRSpatialReferenceH hSRS, 00358 const char * pszTargetKey, 00359 const char * pszAuthority, 00360 int nCode ); 00361 const char CPL_DLL *OSRGetAuthorityCode( OGRSpatialReferenceH hSRS, 00362 const char * pszTargetKey ); 00363 const char CPL_DLL *OSRGetAuthorityName( OGRSpatialReferenceH hSRS, 00364 const char * pszTargetKey ); 00365 OGRErr CPL_DLL OSRSetProjection( OGRSpatialReferenceH, const char * ); 00366 OGRErr CPL_DLL OSRSetProjParm( OGRSpatialReferenceH, const char *, double ); 00367 double CPL_DLL OSRGetProjParm( OGRSpatialReferenceH hSRS, 00368 const char * pszParmName, 00369 double dfDefault /* = 0.0 */, 00370 OGRErr * /* = NULL */ ); 00371 OGRErr CPL_DLL OSRSetNormProjParm( OGRSpatialReferenceH, const char *, double); 00372 double CPL_DLL OSRGetNormProjParm( OGRSpatialReferenceH hSRS, 00373 const char * pszParmName, 00374 double dfDefault /* = 0.0 */, 00375 OGRErr * /* = NULL */ ); 00376 00377 OGRErr CPL_DLL OSRSetUTM( OGRSpatialReferenceH hSRS, int nZone, int bNorth ); 00378 int CPL_DLL OSRGetUTMZone( OGRSpatialReferenceH hSRS, int *pbNorth ); 00379 OGRErr CPL_DLL OSRSetStatePlane( OGRSpatialReferenceH hSRS, 00380 int nZone, int bNAD83 ); 00381 OGRErr CPL_DLL OSRSetStatePlaneWithUnits( OGRSpatialReferenceH hSRS, 00382 int nZone, int bNAD83, 00383 const char *pszOverrideUnitName, 00384 double dfOverrideUnit ); 00385 OGRErr CPL_DLL OSRAutoIdentifyEPSG( OGRSpatialReferenceH hSRS ); 00386 00387 int CPL_DLL OSREPSGTreatsAsLatLong( OGRSpatialReferenceH hSRS ); 00388 const char CPL_DLL *OSRGetAxis( OGRSpatialReferenceH hSRS, 00389 const char *pszTargetKey, int iAxis, 00390 OGRAxisOrientation *peOrientation ); 00391 OGRErr CPL_DLL OSRSetAxes( const char *pszTargetKey, 00392 const char *pszXAxisName, 00393 OGRAxisOrientation eXAxisOrientation, 00394 const char *pszYAxisName, 00395 OGRAxisOrientation eYAxisOrientation ); 00397 OGRErr CPL_DLL OSRSetACEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00398 double dfCenterLat, double dfCenterLong, 00399 double dfFalseEasting, double dfFalseNorthing ); 00400 00402 OGRErr CPL_DLL OSRSetAE( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00403 double dfFalseEasting, double dfFalseNorthing ); 00404 00406 OGRErr CPL_DLL OSRSetBonne(OGRSpatialReferenceH hSRS, 00407 double dfStandardParallel, double dfCentralMeridian, 00408 double dfFalseEasting, double dfFalseNorthing ); 00409 00411 OGRErr CPL_DLL OSRSetCEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfCentralMeridian, 00412 double dfFalseEasting, double dfFalseNorthing ); 00413 00415 OGRErr CPL_DLL OSRSetCS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00416 double dfFalseEasting, double dfFalseNorthing ); 00417 00419 OGRErr CPL_DLL OSRSetEC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00420 double dfCenterLat, double dfCenterLong, 00421 double dfFalseEasting, double dfFalseNorthing ); 00422 00424 OGRErr CPL_DLL OSRSetEckert( OGRSpatialReferenceH hSRS, int nVariation, 00425 double dfCentralMeridian, 00426 double dfFalseEasting, double dfFalseNorthing ); 00427 00429 OGRErr CPL_DLL OSRSetEckertIV( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00430 double dfFalseEasting, double dfFalseNorthing ); 00431 00433 OGRErr CPL_DLL OSRSetEckertVI( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00434 double dfFalseEasting, double dfFalseNorthing ); 00435 00437 OGRErr CPL_DLL OSRSetEquirectangular(OGRSpatialReferenceH hSRS, 00438 double dfCenterLat, double dfCenterLong, 00439 double dfFalseEasting, double dfFalseNorthing ); 00440 00442 OGRErr CPL_DLL OSRSetEquirectangular2( OGRSpatialReferenceH hSRS, 00443 double dfCenterLat, double dfCenterLong, 00444 double dfPseudoStdParallel1, 00445 double dfFalseEasting, 00446 double dfFalseNorthing ); 00447 00449 OGRErr CPL_DLL OSRSetGS( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00450 double dfFalseEasting, double dfFalseNorthing ); 00451 00453 OGRErr CPL_DLL OSRSetGH( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00454 double dfFalseEasting, double dfFalseNorthing ); 00455 00457 OGRErr CPL_DLL OSRSetGEOS( OGRSpatialReferenceH hSRS, 00458 double dfCentralMeridian, double dfSatelliteHeight, 00459 double dfFalseEasting, double dfFalseNorthing ); 00460 00462 OGRErr CPL_DLL OSRSetGaussSchreiberTMercator( OGRSpatialReferenceH hSRS, 00463 double dfCenterLat, double dfCenterLong, 00464 double dfScale, 00465 double dfFalseEasting, 00466 double dfFalseNorthing ); 00468 OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS, 00469 double dfCenterLat, double dfCenterLong, 00470 double dfFalseEasting, double dfFalseNorthing ); 00471 00473 OGRErr CPL_DLL OSRSetHOM( OGRSpatialReferenceH hSRS, 00474 double dfCenterLat, double dfCenterLong, 00475 double dfAzimuth, double dfRectToSkew, 00476 double dfScale, 00477 double dfFalseEasting, double dfFalseNorthing ); 00478 00480 OGRErr CPL_DLL OSRSetHOM2PNO( OGRSpatialReferenceH hSRS, double dfCenterLat, 00481 double dfLat1, double dfLong1, 00482 double dfLat2, double dfLong2, 00483 double dfScale, 00484 double dfFalseEasting, double dfFalseNorthing ); 00485 00487 OGRErr CPL_DLL OSRSetIWMPolyconic( OGRSpatialReferenceH hSRS, 00488 double dfLat1, double dfLat2, 00489 double dfCenterLong, 00490 double dfFalseEasting, 00491 double dfFalseNorthing ); 00492 00494 OGRErr CPL_DLL OSRSetKrovak( OGRSpatialReferenceH hSRS, 00495 double dfCenterLat, double dfCenterLong, 00496 double dfAzimuth, double dfPseudoStdParallelLat, 00497 double dfScale, 00498 double dfFalseEasting, double dfFalseNorthing ); 00499 00501 OGRErr CPL_DLL OSRSetLAEA( OGRSpatialReferenceH hSRS, 00502 double dfCenterLat, double dfCenterLong, 00503 double dfFalseEasting, double dfFalseNorthing ); 00504 00506 OGRErr CPL_DLL OSRSetLCC( OGRSpatialReferenceH hSRS, 00507 double dfStdP1, double dfStdP2, 00508 double dfCenterLat, double dfCenterLong, 00509 double dfFalseEasting, double dfFalseNorthing ); 00510 00512 OGRErr CPL_DLL OSRSetLCC1SP( OGRSpatialReferenceH hSRS, 00513 double dfCenterLat, double dfCenterLong, 00514 double dfScale, 00515 double dfFalseEasting, double dfFalseNorthing ); 00516 00518 OGRErr CPL_DLL OSRSetLCCB( OGRSpatialReferenceH hSRS, 00519 double dfStdP1, double dfStdP2, 00520 double dfCenterLat, double dfCenterLong, 00521 double dfFalseEasting, double dfFalseNorthing ); 00522 00524 OGRErr CPL_DLL OSRSetMC( OGRSpatialReferenceH hSRS, 00525 double dfCenterLat, double dfCenterLong, 00526 double dfFalseEasting, double dfFalseNorthing ); 00527 00529 OGRErr CPL_DLL OSRSetMercator( OGRSpatialReferenceH hSRS, 00530 double dfCenterLat, double dfCenterLong, 00531 double dfScale, 00532 double dfFalseEasting, double dfFalseNorthing ); 00533 00535 OGRErr CPL_DLL OSRSetMollweide( OGRSpatialReferenceH hSRS, 00536 double dfCentralMeridian, 00537 double dfFalseEasting, 00538 double dfFalseNorthing ); 00539 00541 OGRErr CPL_DLL OSRSetNZMG( OGRSpatialReferenceH hSRS, 00542 double dfCenterLat, double dfCenterLong, 00543 double dfFalseEasting, double dfFalseNorthing ); 00544 00546 OGRErr CPL_DLL OSRSetOS( OGRSpatialReferenceH hSRS, 00547 double dfOriginLat, double dfCMeridian, 00548 double dfScale, 00549 double dfFalseEasting,double dfFalseNorthing); 00550 00552 OGRErr CPL_DLL OSRSetOrthographic( OGRSpatialReferenceH hSRS, 00553 double dfCenterLat, double dfCenterLong, 00554 double dfFalseEasting, 00555 double dfFalseNorthing); 00556 00558 OGRErr CPL_DLL OSRSetPolyconic( OGRSpatialReferenceH hSRS, 00559 double dfCenterLat, double dfCenterLong, 00560 double dfFalseEasting, double dfFalseNorthing ); 00561 00563 OGRErr CPL_DLL OSRSetPS( OGRSpatialReferenceH hSRS, 00564 double dfCenterLat, double dfCenterLong, 00565 double dfScale, 00566 double dfFalseEasting, double dfFalseNorthing); 00567 00569 OGRErr CPL_DLL OSRSetRobinson( OGRSpatialReferenceH hSRS, 00570 double dfCenterLong, 00571 double dfFalseEasting, double dfFalseNorthing ); 00572 00574 OGRErr CPL_DLL OSRSetSinusoidal( OGRSpatialReferenceH hSRS, 00575 double dfCenterLong, 00576 double dfFalseEasting, 00577 double dfFalseNorthing ); 00578 00580 OGRErr CPL_DLL OSRSetStereographic( OGRSpatialReferenceH hSRS, 00581 double dfCenterLat, double dfCenterLong, 00582 double dfScale, 00583 double dfFalseEasting, 00584 double dfFalseNorthing); 00585 00587 OGRErr CPL_DLL OSRSetSOC( OGRSpatialReferenceH hSRS, 00588 double dfLatitudeOfOrigin, double dfCentralMeridian, 00589 double dfFalseEasting, double dfFalseNorthing ); 00590 00592 OGRErr CPL_DLL OSRSetTM( OGRSpatialReferenceH hSRS, 00593 double dfCenterLat, double dfCenterLong, 00594 double dfScale, 00595 double dfFalseEasting, double dfFalseNorthing ); 00596 00598 OGRErr CPL_DLL OSRSetTMVariant( 00599 OGRSpatialReferenceH hSRS, const char *pszVariantName, 00600 double dfCenterLat, double dfCenterLong, 00601 double dfScale, 00602 double dfFalseEasting, double dfFalseNorthing ); 00603 00605 OGRErr CPL_DLL OSRSetTMG( OGRSpatialReferenceH hSRS, 00606 double dfCenterLat, double dfCenterLong, 00607 double dfFalseEasting, double dfFalseNorthing ); 00608 00610 OGRErr CPL_DLL OSRSetTMSO( OGRSpatialReferenceH hSRS, 00611 double dfCenterLat, double dfCenterLong, 00612 double dfScale, 00613 double dfFalseEasting, double dfFalseNorthing ); 00614 00616 OGRErr CPL_DLL OSRSetVDG( OGRSpatialReferenceH hSRS, 00617 double dfCenterLong, 00618 double dfFalseEasting, double dfFalseNorthing ); 00619 00621 OGRErr CPL_DLL OSRSetWagner( OGRSpatialReferenceH hSRS, int nVariation, 00622 double dfFalseEasting, 00623 double dfFalseNorthing ); 00624 00625 void CPL_DLL OSRCleanup( void ); 00626 00627 /* -------------------------------------------------------------------- */ 00628 /* OGRCoordinateTransform C API. */ 00629 /* -------------------------------------------------------------------- */ 00630 OGRCoordinateTransformationH CPL_DLL CPL_STDCALL 00631 OCTNewCoordinateTransformation( OGRSpatialReferenceH hSourceSRS, 00632 OGRSpatialReferenceH hTargetSRS ); 00633 void CPL_DLL CPL_STDCALL 00634 OCTDestroyCoordinateTransformation( OGRCoordinateTransformationH ); 00635 00636 int CPL_DLL CPL_STDCALL 00637 OCTTransform( OGRCoordinateTransformationH hCT, 00638 int nCount, double *x, double *y, double *z ); 00639 00640 int CPL_DLL CPL_STDCALL 00641 OCTTransformEx( OGRCoordinateTransformationH hCT, 00642 int nCount, double *x, double *y, double *z, 00643 int *pabSuccess ); 00644 00645 /* this is really private to OGR. */ 00646 char *OCTProj4Normalize( const char *pszProj4Src ); 00647 00648 /* -------------------------------------------------------------------- */ 00649 /* Projection transform dictionary query. */ 00650 /* -------------------------------------------------------------------- */ 00651 00652 char CPL_DLL ** OPTGetProjectionMethods(); 00653 char CPL_DLL ** OPTGetParameterList( const char * pszProjectionMethod, 00654 char ** ppszUserName ); 00655 int CPL_DLL OPTGetParameterInfo( const char * pszProjectionMethod, 00656 const char * pszParameterName, 00657 char ** ppszUserName, 00658 char ** ppszType, 00659 double *pdfDefaultValue ); 00660 00661 CPL_C_END 00662 00663 #endif /* ndef SWIG */ 00664 00665 #endif /* ndef _OGR_SRS_API_H_INCLUDED */