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