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