OGR
|
00001 /****************************************************************************** 00002 * $Id: ogr_srs_api.h 22514 2011-06-08 12:57:26Z 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_IGH "Interrupted_Goode_Homolosine" 00119 #define SRS_PT_GNOMONIC "Gnomonic" 00120 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR \ 00121 "Hotine_Oblique_Mercator" 00122 #define SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN \ 00123 "Hotine_Oblique_Mercator_Two_Point_Natural_Origin" 00124 #define SRS_PT_LABORDE_OBLIQUE_MERCATOR \ 00125 "Laborde_Oblique_Mercator" 00126 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP \ 00127 "Lambert_Conformal_Conic_1SP" 00128 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP \ 00129 "Lambert_Conformal_Conic_2SP" 00130 #define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM \ 00131 "Lambert_Conformal_Conic_2SP_Belgium" 00132 #define SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA \ 00133 "Lambert_Azimuthal_Equal_Area" 00134 #define SRS_PT_MERCATOR_1SP "Mercator_1SP" 00135 #define SRS_PT_MERCATOR_2SP "Mercator_2SP" 00136 #define SRS_PT_MILLER_CYLINDRICAL "Miller_Cylindrical" 00137 #define SRS_PT_MOLLWEIDE "Mollweide" 00138 #define SRS_PT_NEW_ZEALAND_MAP_GRID \ 00139 "New_Zealand_Map_Grid" 00140 #define SRS_PT_OBLIQUE_STEREOGRAPHIC \ 00141 "Oblique_Stereographic" 00142 #define SRS_PT_ORTHOGRAPHIC "Orthographic" 00143 #define SRS_PT_POLAR_STEREOGRAPHIC \ 00144 "Polar_Stereographic" 00145 #define SRS_PT_POLYCONIC "Polyconic" 00146 #define SRS_PT_ROBINSON "Robinson" 00147 #define SRS_PT_SINUSOIDAL "Sinusoidal" 00148 #define SRS_PT_STEREOGRAPHIC "Stereographic" 00149 #define SRS_PT_SWISS_OBLIQUE_CYLINDRICAL \ 00150 "Swiss_Oblique_Cylindrical" 00151 #define SRS_PT_TRANSVERSE_MERCATOR \ 00152 "Transverse_Mercator" 00153 #define SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED \ 00154 "Transverse_Mercator_South_Orientated" 00155 00156 /* special mapinfo variants on Transverse Mercator */ 00157 #define SRS_PT_TRANSVERSE_MERCATOR_MI_21 \ 00158 "Transverse_Mercator_MapInfo_21" 00159 #define SRS_PT_TRANSVERSE_MERCATOR_MI_22 \ 00160 "Transverse_Mercator_MapInfo_22" 00161 #define SRS_PT_TRANSVERSE_MERCATOR_MI_23 \ 00162 "Transverse_Mercator_MapInfo_23" 00163 #define SRS_PT_TRANSVERSE_MERCATOR_MI_24 \ 00164 "Transverse_Mercator_MapInfo_24" 00165 #define SRS_PT_TRANSVERSE_MERCATOR_MI_25 \ 00166 "Transverse_Mercator_MapInfo_25" 00167 00168 #define SRS_PT_TUNISIA_MINING_GRID \ 00169 "Tunisia_Mining_Grid" 00170 #define SRS_PT_TWO_POINT_EQUIDISTANT \ 00171 "Two_Point_Equidistant" 00172 #define SRS_PT_VANDERGRINTEN "VanDerGrinten" 00173 #define SRS_PT_KROVAK "Krovak" 00174 #define SRS_PT_IMW_POLYCONIC "International_Map_of_the_World_Polyconic" 00175 #define SRS_PT_WAGNER_I "Wagner_I" 00176 #define SRS_PT_WAGNER_II "Wagner_II" 00177 #define SRS_PT_WAGNER_III "Wagner_III" 00178 #define SRS_PT_WAGNER_IV "Wagner_IV" 00179 #define SRS_PT_WAGNER_V "Wagner_V" 00180 #define SRS_PT_WAGNER_VI "Wagner_VI" 00181 #define SRS_PT_WAGNER_VII "Wagner_VII" 00182 00183 00184 #define SRS_PP_CENTRAL_MERIDIAN "central_meridian" 00185 #define SRS_PP_SCALE_FACTOR "scale_factor" 00186 #define SRS_PP_STANDARD_PARALLEL_1 "standard_parallel_1" 00187 #define SRS_PP_STANDARD_PARALLEL_2 "standard_parallel_2" 00188 #define SRS_PP_PSEUDO_STD_PARALLEL_1 "pseudo_standard_parallel_1" 00189 #define SRS_PP_LONGITUDE_OF_CENTER "longitude_of_center" 00190 #define SRS_PP_LATITUDE_OF_CENTER "latitude_of_center" 00191 #define SRS_PP_LONGITUDE_OF_ORIGIN "longitude_of_origin" 00192 #define SRS_PP_LATITUDE_OF_ORIGIN "latitude_of_origin" 00193 #define SRS_PP_FALSE_EASTING "false_easting" 00194 #define SRS_PP_FALSE_NORTHING "false_northing" 00195 #define SRS_PP_AZIMUTH "azimuth" 00196 #define SRS_PP_LONGITUDE_OF_POINT_1 "longitude_of_point_1" 00197 #define SRS_PP_LATITUDE_OF_POINT_1 "latitude_of_point_1" 00198 #define SRS_PP_LONGITUDE_OF_POINT_2 "longitude_of_point_2" 00199 #define SRS_PP_LATITUDE_OF_POINT_2 "latitude_of_point_2" 00200 #define SRS_PP_LONGITUDE_OF_POINT_3 "longitude_of_point_3" 00201 #define SRS_PP_LATITUDE_OF_POINT_3 "latitude_of_point_3" 00202 #define SRS_PP_RECTIFIED_GRID_ANGLE "rectified_grid_angle" 00203 #define SRS_PP_LANDSAT_NUMBER "landsat_number" 00204 #define SRS_PP_PATH_NUMBER "path_number" 00205 #define SRS_PP_PERSPECTIVE_POINT_HEIGHT "perspective_point_height" 00206 #define SRS_PP_SATELLITE_HEIGHT "satellite_height" 00207 #define SRS_PP_FIPSZONE "fipszone" 00208 #define SRS_PP_ZONE "zone" 00209 #define SRS_PP_LATITUDE_OF_1ST_POINT "Latitude_Of_1st_Point" 00210 #define SRS_PP_LONGITUDE_OF_1ST_POINT "Longitude_Of_1st_Point" 00211 #define SRS_PP_LATITUDE_OF_2ND_POINT "Latitude_Of_2nd_Point" 00212 #define SRS_PP_LONGITUDE_OF_2ND_POINT "Longitude_Of_2nd_Point" 00213 00214 #define SRS_UL_METER "Meter" 00215 #define SRS_UL_FOOT "Foot (International)" /* or just "FOOT"? */ 00216 #define SRS_UL_FOOT_CONV "0.3048" 00217 #define SRS_UL_US_FOOT "Foot_US" /* or "US survey foot" from EPSG */ 00218 #define SRS_UL_US_FOOT_CONV "0.3048006096012192" 00219 #define SRS_UL_NAUTICAL_MILE "Nautical Mile" 00220 #define SRS_UL_NAUTICAL_MILE_CONV "1852.0" 00221 #define SRS_UL_LINK "Link" /* Based on US Foot */ 00222 #define SRS_UL_LINK_CONV "0.20116684023368047" 00223 #define SRS_UL_CHAIN "Chain" /* based on US Foot */ 00224 #define SRS_UL_CHAIN_CONV "20.116684023368047" 00225 #define SRS_UL_ROD "Rod" /* based on US Foot */ 00226 #define SRS_UL_ROD_CONV "5.02921005842012" 00227 #define SRS_UL_LINK_Clarke "Link_Clarke" 00228 #define SRS_UL_LINK_Clarke_CONV "0.2011661949" 00229 00230 #define SRS_UA_DEGREE "degree" 00231 #define SRS_UA_DEGREE_CONV "0.0174532925199433" 00232 #define SRS_UA_RADIAN "radian" 00233 00234 #define SRS_PM_GREENWICH "Greenwich" 00235 00236 #define SRS_DN_NAD27 "North_American_Datum_1927" 00237 #define SRS_DN_NAD83 "North_American_Datum_1983" 00238 #define SRS_DN_WGS72 "WGS_1972" 00239 #define SRS_DN_WGS84 "WGS_1984" 00240 00241 #define SRS_WGS84_SEMIMAJOR 6378137.0 00242 #define SRS_WGS84_INVFLATTENING 298.257223563 00243 00244 #ifndef SWIG 00245 /* -------------------------------------------------------------------- */ 00246 /* C Wrappers for C++ objects and methods. */ 00247 /* -------------------------------------------------------------------- */ 00248 #ifndef _DEFINED_OGRSpatialReferenceH 00249 #define _DEFINED_OGRSpatialReferenceH 00250 00251 #ifdef DEBUG 00252 typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH; 00253 typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH; 00254 #else 00255 typedef void *OGRSpatialReferenceH; 00256 typedef void *OGRCoordinateTransformationH; 00257 #endif 00258 00259 #endif 00260 00261 00262 OGRSpatialReferenceH CPL_DLL CPL_STDCALL 00263 OSRNewSpatialReference( const char * /* = NULL */); 00264 OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRCloneGeogCS( OGRSpatialReferenceH ); 00265 OGRSpatialReferenceH CPL_DLL CPL_STDCALL OSRClone( OGRSpatialReferenceH ); 00266 void CPL_DLL CPL_STDCALL OSRDestroySpatialReference( OGRSpatialReferenceH ); 00267 00268 int CPL_DLL OSRReference( OGRSpatialReferenceH ); 00269 int CPL_DLL OSRDereference( OGRSpatialReferenceH ); 00270 void CPL_DLL OSRRelease( OGRSpatialReferenceH ); 00271 00272 OGRErr CPL_DLL OSRValidate( OGRSpatialReferenceH ); 00273 OGRErr CPL_DLL OSRFixupOrdering( OGRSpatialReferenceH ); 00274 OGRErr CPL_DLL OSRFixup( OGRSpatialReferenceH ); 00275 OGRErr CPL_DLL OSRStripCTParms( OGRSpatialReferenceH ); 00276 00277 OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSG( OGRSpatialReferenceH, int ); 00278 OGRErr CPL_DLL CPL_STDCALL OSRImportFromEPSGA( OGRSpatialReferenceH, int ); 00279 OGRErr CPL_DLL OSRImportFromWkt( OGRSpatialReferenceH, char ** ); 00280 OGRErr CPL_DLL OSRImportFromProj4( OGRSpatialReferenceH, const char *); 00281 OGRErr CPL_DLL OSRImportFromESRI( OGRSpatialReferenceH, char **); 00282 OGRErr CPL_DLL OSRImportFromPCI( OGRSpatialReferenceH hSRS, const char *, 00283 const char *, double * ); 00284 OGRErr CPL_DLL OSRImportFromUSGS( OGRSpatialReferenceH, 00285 long, long, double *, long); 00286 OGRErr CPL_DLL OSRImportFromXML( OGRSpatialReferenceH, const char * ); 00287 OGRErr CPL_DLL OSRImportFromDict( OGRSpatialReferenceH, const char *, 00288 const char * ); 00289 OGRErr CPL_DLL OSRImportFromPanorama( OGRSpatialReferenceH, long, long, long, 00290 double * ); 00291 OGRErr CPL_DLL OSRImportFromOzi( OGRSpatialReferenceH , const char *, const char *, 00292 const char * ); 00293 OGRErr CPL_DLL OSRImportFromMICoordSys( OGRSpatialReferenceH, const char *); 00294 OGRErr CPL_DLL OSRImportFromERM( OGRSpatialReferenceH, 00295 const char *, const char *, const char * ); 00296 OGRErr CPL_DLL OSRImportFromUrl( OGRSpatialReferenceH, const char * ); 00297 00298 OGRErr CPL_DLL CPL_STDCALL OSRExportToWkt( OGRSpatialReferenceH, char ** ); 00299 OGRErr CPL_DLL CPL_STDCALL OSRExportToPrettyWkt( OGRSpatialReferenceH, char **, int); 00300 OGRErr CPL_DLL CPL_STDCALL OSRExportToProj4( OGRSpatialReferenceH, char **); 00301 OGRErr CPL_DLL OSRExportToPCI( OGRSpatialReferenceH, char **, char **, 00302 double ** ); 00303 OGRErr CPL_DLL OSRExportToUSGS( OGRSpatialReferenceH, long *, long *, 00304 double **, long * ); 00305 OGRErr CPL_DLL OSRExportToXML( OGRSpatialReferenceH, char **, const char * ); 00306 OGRErr CPL_DLL OSRExportToPanorama( OGRSpatialReferenceH, long *, long *, 00307 long *, long *, double * ); 00308 OGRErr CPL_DLL OSRExportToMICoordSys( OGRSpatialReferenceH, char ** ); 00309 OGRErr CPL_DLL OSRExportToERM( OGRSpatialReferenceH, char *, char *, char * ); 00310 00311 OGRErr CPL_DLL OSRMorphToESRI( OGRSpatialReferenceH ); 00312 OGRErr CPL_DLL OSRMorphFromESRI( OGRSpatialReferenceH ); 00313 00314 OGRErr CPL_DLL CPL_STDCALL OSRSetAttrValue( OGRSpatialReferenceH hSRS, 00315 const char * pszNodePath, 00316 const char * pszNewNodeValue ); 00317 const char CPL_DLL * CPL_STDCALL OSRGetAttrValue( OGRSpatialReferenceH hSRS, 00318 const char * pszName, int iChild /* = 0 */ ); 00319 00320 OGRErr CPL_DLL OSRSetAngularUnits( OGRSpatialReferenceH, const char *, double ); 00321 double CPL_DLL OSRGetAngularUnits( OGRSpatialReferenceH, char ** ); 00322 OGRErr CPL_DLL OSRSetLinearUnits( OGRSpatialReferenceH, const char *, double ); 00323 OGRErr CPL_DLL OSRSetTargetLinearUnits( OGRSpatialReferenceH, const char *, const char *, double ); 00324 OGRErr CPL_DLL OSRSetLinearUnitsAndUpdateParameters( 00325 OGRSpatialReferenceH, const char *, double ); 00326 double CPL_DLL OSRGetLinearUnits( OGRSpatialReferenceH, char ** ); 00327 double CPL_DLL OSRGetTargetLinearUnits( OGRSpatialReferenceH, const char *, char ** ); 00328 00329 double CPL_DLL OSRGetPrimeMeridian( OGRSpatialReferenceH, char ** ); 00330 00331 int CPL_DLL OSRIsGeographic( OGRSpatialReferenceH ); 00332 int CPL_DLL OSRIsLocal( OGRSpatialReferenceH ); 00333 int CPL_DLL OSRIsProjected( OGRSpatialReferenceH ); 00334 int CPL_DLL OSRIsCompound( OGRSpatialReferenceH ); 00335 int CPL_DLL OSRIsGeocentric( OGRSpatialReferenceH ); 00336 int CPL_DLL OSRIsVertical( OGRSpatialReferenceH ); 00337 int CPL_DLL OSRIsSameGeogCS( OGRSpatialReferenceH, OGRSpatialReferenceH ); 00338 int CPL_DLL OSRIsSameVertCS( OGRSpatialReferenceH, OGRSpatialReferenceH ); 00339 int CPL_DLL OSRIsSame( OGRSpatialReferenceH, OGRSpatialReferenceH ); 00340 00341 OGRErr CPL_DLL OSRSetLocalCS( OGRSpatialReferenceH hSRS, const char *pszName ); 00342 OGRErr CPL_DLL OSRSetProjCS( OGRSpatialReferenceH hSRS, const char * pszName ); 00343 OGRErr CPL_DLL OSRSetGeocCS( OGRSpatialReferenceH hSRS, const char * pszName ); 00344 OGRErr CPL_DLL OSRSetWellKnownGeogCS( OGRSpatialReferenceH hSRS, 00345 const char * pszName ); 00346 OGRErr CPL_DLL CPL_STDCALL OSRSetFromUserInput( OGRSpatialReferenceH hSRS, 00347 const char * ); 00348 OGRErr CPL_DLL OSRCopyGeogCSFrom( OGRSpatialReferenceH hSRS, 00349 OGRSpatialReferenceH hSrcSRS ); 00350 OGRErr CPL_DLL OSRSetTOWGS84( OGRSpatialReferenceH hSRS, 00351 double, double, double, 00352 double, double, double, double ); 00353 OGRErr CPL_DLL OSRGetTOWGS84( OGRSpatialReferenceH hSRS, double *, int ); 00354 00355 00356 OGRErr CPL_DLL OSRSetCompoundCS( OGRSpatialReferenceH hSRS, 00357 const char *pszName, 00358 OGRSpatialReferenceH hHorizSRS, 00359 OGRSpatialReferenceH hVertSRS ); 00360 OGRErr CPL_DLL OSRSetGeogCS( OGRSpatialReferenceH hSRS, 00361 const char * pszGeogName, 00362 const char * pszDatumName, 00363 const char * pszEllipsoidName, 00364 double dfSemiMajor, double dfInvFlattening, 00365 const char * pszPMName /* = NULL */, 00366 double dfPMOffset /* = 0.0 */, 00367 const char * pszUnits /* = NULL */, 00368 double dfConvertToRadians /* = 0.0 */ ); 00369 00370 OGRErr CPL_DLL OSRSetVertCS( OGRSpatialReferenceH hSRS, 00371 const char * pszVertCSName, 00372 const char * pszVertDatumName, 00373 int nVertDatumType ); 00374 00375 double CPL_DLL OSRGetSemiMajor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); 00376 double CPL_DLL OSRGetSemiMinor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); 00377 double CPL_DLL OSRGetInvFlattening( OGRSpatialReferenceH, OGRErr * /*=NULL*/); 00378 00379 OGRErr CPL_DLL OSRSetAuthority( OGRSpatialReferenceH hSRS, 00380 const char * pszTargetKey, 00381 const char * pszAuthority, 00382 int nCode ); 00383 const char CPL_DLL *OSRGetAuthorityCode( OGRSpatialReferenceH hSRS, 00384 const char * pszTargetKey ); 00385 const char CPL_DLL *OSRGetAuthorityName( OGRSpatialReferenceH hSRS, 00386 const char * pszTargetKey ); 00387 OGRErr CPL_DLL OSRSetProjection( OGRSpatialReferenceH, const char * ); 00388 OGRErr CPL_DLL OSRSetProjParm( OGRSpatialReferenceH, const char *, double ); 00389 double CPL_DLL OSRGetProjParm( OGRSpatialReferenceH hSRS, 00390 const char * pszParmName, 00391 double dfDefault /* = 0.0 */, 00392 OGRErr * /* = NULL */ ); 00393 OGRErr CPL_DLL OSRSetNormProjParm( OGRSpatialReferenceH, const char *, double); 00394 double CPL_DLL OSRGetNormProjParm( OGRSpatialReferenceH hSRS, 00395 const char * pszParmName, 00396 double dfDefault /* = 0.0 */, 00397 OGRErr * /* = NULL */ ); 00398 00399 OGRErr CPL_DLL OSRSetUTM( OGRSpatialReferenceH hSRS, int nZone, int bNorth ); 00400 int CPL_DLL OSRGetUTMZone( OGRSpatialReferenceH hSRS, int *pbNorth ); 00401 OGRErr CPL_DLL OSRSetStatePlane( OGRSpatialReferenceH hSRS, 00402 int nZone, int bNAD83 ); 00403 OGRErr CPL_DLL OSRSetStatePlaneWithUnits( OGRSpatialReferenceH hSRS, 00404 int nZone, int bNAD83, 00405 const char *pszOverrideUnitName, 00406 double dfOverrideUnit ); 00407 OGRErr CPL_DLL OSRAutoIdentifyEPSG( OGRSpatialReferenceH hSRS ); 00408 00409 int CPL_DLL OSREPSGTreatsAsLatLong( OGRSpatialReferenceH hSRS ); 00410 const char CPL_DLL *OSRGetAxis( OGRSpatialReferenceH hSRS, 00411 const char *pszTargetKey, int iAxis, 00412 OGRAxisOrientation *peOrientation ); 00413 OGRErr CPL_DLL OSRSetAxes( const char *pszTargetKey, 00414 const char *pszXAxisName, 00415 OGRAxisOrientation eXAxisOrientation, 00416 const char *pszYAxisName, 00417 OGRAxisOrientation eYAxisOrientation ); 00419 OGRErr CPL_DLL OSRSetACEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00420 double dfCenterLat, double dfCenterLong, 00421 double dfFalseEasting, double dfFalseNorthing ); 00422 00424 OGRErr CPL_DLL OSRSetAE( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00425 double dfFalseEasting, double dfFalseNorthing ); 00426 00428 OGRErr CPL_DLL OSRSetBonne(OGRSpatialReferenceH hSRS, 00429 double dfStandardParallel, double dfCentralMeridian, 00430 double dfFalseEasting, double dfFalseNorthing ); 00431 00433 OGRErr CPL_DLL OSRSetCEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfCentralMeridian, 00434 double dfFalseEasting, double dfFalseNorthing ); 00435 00437 OGRErr CPL_DLL OSRSetCS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, 00438 double dfFalseEasting, double dfFalseNorthing ); 00439 00441 OGRErr CPL_DLL OSRSetEC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, 00442 double dfCenterLat, double dfCenterLong, 00443 double dfFalseEasting, double dfFalseNorthing ); 00444 00446 OGRErr CPL_DLL OSRSetEckert( OGRSpatialReferenceH hSRS, int nVariation, 00447 double dfCentralMeridian, 00448 double dfFalseEasting, double dfFalseNorthing ); 00449 00451 OGRErr CPL_DLL OSRSetEckertIV( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00452 double dfFalseEasting, double dfFalseNorthing ); 00453 00455 OGRErr CPL_DLL OSRSetEckertVI( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00456 double dfFalseEasting, double dfFalseNorthing ); 00457 00459 OGRErr CPL_DLL OSRSetEquirectangular(OGRSpatialReferenceH hSRS, 00460 double dfCenterLat, double dfCenterLong, 00461 double dfFalseEasting, double dfFalseNorthing ); 00462 00464 OGRErr CPL_DLL OSRSetEquirectangular2( OGRSpatialReferenceH hSRS, 00465 double dfCenterLat, double dfCenterLong, 00466 double dfPseudoStdParallel1, 00467 double dfFalseEasting, 00468 double dfFalseNorthing ); 00469 00471 OGRErr CPL_DLL OSRSetGS( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00472 double dfFalseEasting, double dfFalseNorthing ); 00473 00475 OGRErr CPL_DLL OSRSetGH( OGRSpatialReferenceH hSRS, double dfCentralMeridian, 00476 double dfFalseEasting, double dfFalseNorthing ); 00477 00479 OGRErr CPL_DLL OSRSetIGH( OGRSpatialReferenceH hSRS ); 00480 00482 OGRErr CPL_DLL OSRSetGEOS( OGRSpatialReferenceH hSRS, 00483 double dfCentralMeridian, double dfSatelliteHeight, 00484 double dfFalseEasting, double dfFalseNorthing ); 00485 00487 OGRErr CPL_DLL OSRSetGaussSchreiberTMercator( OGRSpatialReferenceH hSRS, 00488 double dfCenterLat, double dfCenterLong, 00489 double dfScale, 00490 double dfFalseEasting, 00491 double dfFalseNorthing ); 00493 OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS, 00494 double dfCenterLat, double dfCenterLong, 00495 double dfFalseEasting, double dfFalseNorthing ); 00496 00498 OGRErr CPL_DLL OSRSetHOM( OGRSpatialReferenceH hSRS, 00499 double dfCenterLat, double dfCenterLong, 00500 double dfAzimuth, double dfRectToSkew, 00501 double dfScale, 00502 double dfFalseEasting, double dfFalseNorthing ); 00503 00505 OGRErr CPL_DLL OSRSetHOM2PNO( OGRSpatialReferenceH hSRS, double dfCenterLat, 00506 double dfLat1, double dfLong1, 00507 double dfLat2, double dfLong2, 00508 double dfScale, 00509 double dfFalseEasting, double dfFalseNorthing ); 00510 00512 OGRErr CPL_DLL OSRSetIWMPolyconic( OGRSpatialReferenceH hSRS, 00513 double dfLat1, double dfLat2, 00514 double dfCenterLong, 00515 double dfFalseEasting, 00516 double dfFalseNorthing ); 00517 00519 OGRErr CPL_DLL OSRSetKrovak( OGRSpatialReferenceH hSRS, 00520 double dfCenterLat, double dfCenterLong, 00521 double dfAzimuth, double dfPseudoStdParallelLat, 00522 double dfScale, 00523 double dfFalseEasting, double dfFalseNorthing ); 00524 00526 OGRErr CPL_DLL OSRSetLAEA( OGRSpatialReferenceH hSRS, 00527 double dfCenterLat, double dfCenterLong, 00528 double dfFalseEasting, double dfFalseNorthing ); 00529 00531 OGRErr CPL_DLL OSRSetLCC( OGRSpatialReferenceH hSRS, 00532 double dfStdP1, double dfStdP2, 00533 double dfCenterLat, double dfCenterLong, 00534 double dfFalseEasting, double dfFalseNorthing ); 00535 00537 OGRErr CPL_DLL OSRSetLCC1SP( OGRSpatialReferenceH hSRS, 00538 double dfCenterLat, double dfCenterLong, 00539 double dfScale, 00540 double dfFalseEasting, double dfFalseNorthing ); 00541 00543 OGRErr CPL_DLL OSRSetLCCB( OGRSpatialReferenceH hSRS, 00544 double dfStdP1, double dfStdP2, 00545 double dfCenterLat, double dfCenterLong, 00546 double dfFalseEasting, double dfFalseNorthing ); 00547 00549 OGRErr CPL_DLL OSRSetMC( OGRSpatialReferenceH hSRS, 00550 double dfCenterLat, double dfCenterLong, 00551 double dfFalseEasting, double dfFalseNorthing ); 00552 00554 OGRErr CPL_DLL OSRSetMercator( OGRSpatialReferenceH hSRS, 00555 double dfCenterLat, double dfCenterLong, 00556 double dfScale, 00557 double dfFalseEasting, double dfFalseNorthing ); 00558 00560 OGRErr CPL_DLL OSRSetMollweide( OGRSpatialReferenceH hSRS, 00561 double dfCentralMeridian, 00562 double dfFalseEasting, 00563 double dfFalseNorthing ); 00564 00566 OGRErr CPL_DLL OSRSetNZMG( OGRSpatialReferenceH hSRS, 00567 double dfCenterLat, double dfCenterLong, 00568 double dfFalseEasting, double dfFalseNorthing ); 00569 00571 OGRErr CPL_DLL OSRSetOS( OGRSpatialReferenceH hSRS, 00572 double dfOriginLat, double dfCMeridian, 00573 double dfScale, 00574 double dfFalseEasting,double dfFalseNorthing); 00575 00577 OGRErr CPL_DLL OSRSetOrthographic( OGRSpatialReferenceH hSRS, 00578 double dfCenterLat, double dfCenterLong, 00579 double dfFalseEasting, 00580 double dfFalseNorthing); 00581 00583 OGRErr CPL_DLL OSRSetPolyconic( OGRSpatialReferenceH hSRS, 00584 double dfCenterLat, double dfCenterLong, 00585 double dfFalseEasting, double dfFalseNorthing ); 00586 00588 OGRErr CPL_DLL OSRSetPS( OGRSpatialReferenceH hSRS, 00589 double dfCenterLat, double dfCenterLong, 00590 double dfScale, 00591 double dfFalseEasting, double dfFalseNorthing); 00592 00594 OGRErr CPL_DLL OSRSetRobinson( OGRSpatialReferenceH hSRS, 00595 double dfCenterLong, 00596 double dfFalseEasting, double dfFalseNorthing ); 00597 00599 OGRErr CPL_DLL OSRSetSinusoidal( OGRSpatialReferenceH hSRS, 00600 double dfCenterLong, 00601 double dfFalseEasting, 00602 double dfFalseNorthing ); 00603 00605 OGRErr CPL_DLL OSRSetStereographic( OGRSpatialReferenceH hSRS, 00606 double dfCenterLat, double dfCenterLong, 00607 double dfScale, 00608 double dfFalseEasting, 00609 double dfFalseNorthing); 00610 00612 OGRErr CPL_DLL OSRSetSOC( OGRSpatialReferenceH hSRS, 00613 double dfLatitudeOfOrigin, double dfCentralMeridian, 00614 double dfFalseEasting, double dfFalseNorthing ); 00615 00617 OGRErr CPL_DLL OSRSetTM( OGRSpatialReferenceH hSRS, 00618 double dfCenterLat, double dfCenterLong, 00619 double dfScale, 00620 double dfFalseEasting, double dfFalseNorthing ); 00621 00623 OGRErr CPL_DLL OSRSetTMVariant( 00624 OGRSpatialReferenceH hSRS, const char *pszVariantName, 00625 double dfCenterLat, double dfCenterLong, 00626 double dfScale, 00627 double dfFalseEasting, double dfFalseNorthing ); 00628 00630 OGRErr CPL_DLL OSRSetTMG( OGRSpatialReferenceH hSRS, 00631 double dfCenterLat, double dfCenterLong, 00632 double dfFalseEasting, double dfFalseNorthing ); 00633 00635 OGRErr CPL_DLL OSRSetTMSO( OGRSpatialReferenceH hSRS, 00636 double dfCenterLat, double dfCenterLong, 00637 double dfScale, 00638 double dfFalseEasting, double dfFalseNorthing ); 00639 00641 OGRErr CPL_DLL OSRSetVDG( OGRSpatialReferenceH hSRS, 00642 double dfCenterLong, 00643 double dfFalseEasting, double dfFalseNorthing ); 00644 00646 OGRErr CPL_DLL OSRSetWagner( OGRSpatialReferenceH hSRS, int nVariation, 00647 double dfFalseEasting, 00648 double dfFalseNorthing ); 00649 00650 void CPL_DLL OSRCleanup( void ); 00651 00652 /* -------------------------------------------------------------------- */ 00653 /* OGRCoordinateTransform C API. */ 00654 /* -------------------------------------------------------------------- */ 00655 OGRCoordinateTransformationH CPL_DLL CPL_STDCALL 00656 OCTNewCoordinateTransformation( OGRSpatialReferenceH hSourceSRS, 00657 OGRSpatialReferenceH hTargetSRS ); 00658 void CPL_DLL CPL_STDCALL 00659 OCTDestroyCoordinateTransformation( OGRCoordinateTransformationH ); 00660 00661 int CPL_DLL CPL_STDCALL 00662 OCTTransform( OGRCoordinateTransformationH hCT, 00663 int nCount, double *x, double *y, double *z ); 00664 00665 int CPL_DLL CPL_STDCALL 00666 OCTTransformEx( OGRCoordinateTransformationH hCT, 00667 int nCount, double *x, double *y, double *z, 00668 int *pabSuccess ); 00669 00670 /* this is really private to OGR. */ 00671 char *OCTProj4Normalize( const char *pszProj4Src ); 00672 00673 /* -------------------------------------------------------------------- */ 00674 /* Projection transform dictionary query. */ 00675 /* -------------------------------------------------------------------- */ 00676 00677 char CPL_DLL ** OPTGetProjectionMethods(); 00678 char CPL_DLL ** OPTGetParameterList( const char * pszProjectionMethod, 00679 char ** ppszUserName ); 00680 int CPL_DLL OPTGetParameterInfo( const char * pszProjectionMethod, 00681 const char * pszParameterName, 00682 char ** ppszUserName, 00683 char ** ppszType, 00684 double *pdfDefaultValue ); 00685 00686 CPL_C_END 00687 00688 #endif /* ndef SWIG */ 00689 00690 #endif /* ndef _OGR_SRS_API_H_INCLUDED */