svn-gvsig-desktop / tags / v10_RC2c / libraries / libjni-gdal / include / ogr_srs_api.h @ 8745
History | View | Annotate | Download (29.4 KB)
1 |
/******************************************************************************
|
---|---|
2 |
* $Id: ogr_srs_api.h 8745 2006-11-14 13:14:23Z $
|
3 |
*
|
4 |
* Project: OpenGIS Simple Features Reference Implementation
|
5 |
* Purpose: C API and constant declarations for OGR Spatial References.
|
6 |
* Author: Frank Warmerdam, warmerda@home.com
|
7 |
*
|
8 |
******************************************************************************
|
9 |
* Copyright (c) 2000, Frank Warmerdam
|
10 |
*
|
11 |
* Permission is hereby granted, free of charge, to any person obtaining a
|
12 |
* copy of this software and associated documentation files (the "Software"),
|
13 |
* to deal in the Software without restriction, including without limitation
|
14 |
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
15 |
* and/or sell copies of the Software, and to permit persons to whom the
|
16 |
* Software is furnished to do so, subject to the following conditions:
|
17 |
*
|
18 |
* The above copyright notice and this permission notice shall be included
|
19 |
* in all copies or substantial portions of the Software.
|
20 |
*
|
21 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
22 |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
23 |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
24 |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
25 |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
26 |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
27 |
* DEALINGS IN THE SOFTWARE.
|
28 |
******************************************************************************
|
29 |
*
|
30 |
* $Log$
|
31 |
* Revision 1.2.10.1 2006-10-04 06:55:46 nacho
|
32 |
* *** empty log message ***
|
33 |
*
|
34 |
* Revision 1.3 2006/10/03 07:05:18 nacho
|
35 |
* *** empty log message ***
|
36 |
*
|
37 |
* Revision 1.1 2006/07/18 16:21:00 nacho
|
38 |
* *** empty log message ***
|
39 |
*
|
40 |
* Revision 1.1 2006/06/29 16:23:27 nacho
|
41 |
* *** empty log message ***
|
42 |
*
|
43 |
* Revision 1.2 2006/01/09 12:50:13 nacho
|
44 |
* *** empty log message ***
|
45 |
*
|
46 |
* Revision 1.1 2005/07/27 08:22:55 igbrotru
|
47 |
* *** empty log message ***
|
48 |
*
|
49 |
* Revision 1.1 2004/12/28 14:06:59 igbrotru
|
50 |
* *** empty log message ***
|
51 |
*
|
52 |
* Revision 1.1 2004/12/28 13:32:25 igbrotru
|
53 |
* *** empty log message ***
|
54 |
*
|
55 |
* Revision 1.46 2004/09/23 16:20:13 fwarmerdam
|
56 |
* added OSRCleanup
|
57 |
*
|
58 |
* Revision 1.45 2004/05/12 19:25:54 dron
|
59 |
* SRS_DN_WGS72 constant added.
|
60 |
*
|
61 |
* Revision 1.44 2004/05/10 17:05:14 warmerda
|
62 |
* added AutoIdentifyEPSG()
|
63 |
*
|
64 |
* Revision 1.43 2004/05/06 19:26:04 dron
|
65 |
* Added OSRSetProjection() function.
|
66 |
*
|
67 |
* Revision 1.42 2004/03/04 18:04:45 warmerda
|
68 |
* added importFromDict() support
|
69 |
*
|
70 |
* Revision 1.41 2004/02/07 17:31:21 dron
|
71 |
* Added OSRExportToUSGS() method.
|
72 |
*
|
73 |
* Revision 1.40 2004/02/05 17:07:59 dron
|
74 |
* Support for HOM projection, specified by two points on centerline.
|
75 |
*
|
76 |
* Revision 1.39 2004/02/01 14:23:29 dron
|
77 |
* Added OSRImportFromUSGS().
|
78 |
*
|
79 |
* Revision 1.38 2004/01/24 09:35:00 warmerda
|
80 |
* added TransformEx support to capture per point reprojection failure
|
81 |
*
|
82 |
* Revision 1.37 2003/09/09 07:49:52 dron
|
83 |
* Added OSRExportToPCI().
|
84 |
*
|
85 |
* Revision 1.36 2003/08/31 14:51:01 dron
|
86 |
* Added OSRImportFromPCI().
|
87 |
*
|
88 |
* Revision 1.35 2003/08/18 13:26:01 warmerda
|
89 |
* added SetTMVariant() and related definitions
|
90 |
*
|
91 |
* Revision 1.34 2003/06/21 23:24:36 warmerda
|
92 |
* added Set/Get TOWGS84 calls
|
93 |
*
|
94 |
* Revision 1.33 2003/06/19 17:10:26 warmerda
|
95 |
* a couple fixes in last commit
|
96 |
*
|
97 |
* Revision 1.32 2003/06/18 18:24:17 warmerda
|
98 |
* added projection specific set methods to C API
|
99 |
*
|
100 |
* Revision 1.31 2003/06/10 09:31:12 dron
|
101 |
* Added OSRSetAngularUnits() and OSRGetAngularUnits().
|
102 |
*
|
103 |
* Revision 1.30 2003/05/30 15:39:53 warmerda
|
104 |
* Added override units capability for SetStatePlane()
|
105 |
*
|
106 |
* Revision 1.29 2003/03/21 22:15:11 warmerda
|
107 |
* added C XML import/export entry points
|
108 |
*
|
109 |
* Revision 1.28 2003/03/12 14:29:34 warmerda
|
110 |
* Rename OGRAxisOrientation and OGRDatumType values to avoid conflicts with
|
111 |
* the real OGC definitions in applications such as Cadcorps.
|
112 |
*
|
113 |
* Revision 1.27 2003/02/25 04:53:38 warmerda
|
114 |
* added OSRCopyGeogCSFrom
|
115 |
*
|
116 |
* Revision 1.26 2003/02/06 04:53:12 warmerda
|
117 |
* added Fixup() method
|
118 |
*
|
119 |
* Revision 1.25 2003/01/08 18:14:28 warmerda
|
120 |
* added FixupOrdering()
|
121 |
*
|
122 |
* Revision 1.24 2002/12/16 17:07:13 warmerda
|
123 |
* added NormProjParm functions, and OSRGetPrimeMeridian
|
124 |
*
|
125 |
* Revision 1.23 2002/12/14 22:59:14 warmerda
|
126 |
* added Krovak in ESRI compatible way
|
127 |
*
|
128 |
* Revision 1.22 2002/12/09 18:55:07 warmerda
|
129 |
* moved DMS stuff to gdal/port
|
130 |
*
|
131 |
* Revision 1.21 2002/12/09 16:11:53 warmerda
|
132 |
* added DMS translation
|
133 |
*
|
134 |
* Revision 1.20 2002/11/25 16:12:54 warmerda
|
135 |
* added GetAuthorityCode/Name
|
136 |
*
|
137 |
* Revision 1.19 2002/09/26 18:13:25 warmerda
|
138 |
* avoid double def
|
139 |
*
|
140 |
* Revision 1.18 2002/06/11 18:02:03 warmerda
|
141 |
* add PROJ.4 normalization and EPSG support
|
142 |
*
|
143 |
* Revision 1.17 2001/10/11 19:27:12 warmerda
|
144 |
* upgraded validation infrastructure
|
145 |
*
|
146 |
* Revision 1.16 2001/10/10 20:42:43 warmerda
|
147 |
* added ESRI WKT morphing support
|
148 |
*
|
149 |
* Revision 1.15 2001/09/21 16:21:02 warmerda
|
150 |
* added Clear(), and SetFromUserInput() methods
|
151 |
*
|
152 |
* Revision 1.14 2000/11/09 06:21:32 warmerda
|
153 |
* added limited ESRI prj support
|
154 |
*
|
155 |
* Revision 1.13 2000/10/20 04:19:38 warmerda
|
156 |
* added setstateplane
|
157 |
*
|
158 |
* Revision 1.12 2000/10/16 21:26:07 warmerda
|
159 |
* added some level of LOCAL_CS support
|
160 |
*
|
161 |
* Revision 1.11 2000/09/01 20:58:01 warmerda
|
162 |
* added CPL_DLL for entry points
|
163 |
*
|
164 |
* Revision 1.10 2000/08/30 20:06:14 warmerda
|
165 |
* added projection method list functions
|
166 |
*
|
167 |
* Revision 1.9 2000/08/28 20:13:23 warmerda
|
168 |
* added importFromProj4
|
169 |
*
|
170 |
* Revision 1.8 2000/07/11 01:02:06 warmerda
|
171 |
* added ExportToProj4()
|
172 |
*
|
173 |
* Revision 1.7 2000/07/09 20:48:02 warmerda
|
174 |
* added exportToPrettyWkt
|
175 |
*
|
176 |
* Revision 1.6 2000/05/30 22:45:44 warmerda
|
177 |
* added OSRCloneGeogCS()
|
178 |
*
|
179 |
* Revision 1.5 2000/04/26 18:25:56 warmerda
|
180 |
* added missing CPL_DLL attributes
|
181 |
*
|
182 |
* Revision 1.4 2000/03/22 01:09:43 warmerda
|
183 |
* added SetProjCS and SetWellKnownTextCS
|
184 |
*
|
185 |
* Revision 1.3 2000/03/20 23:33:51 warmerda
|
186 |
* updated docs a bit
|
187 |
*
|
188 |
* Revision 1.2 2000/03/20 22:39:31 warmerda
|
189 |
* Added C API.
|
190 |
*
|
191 |
* Revision 1.1 2000/03/16 19:04:14 warmerda
|
192 |
* New
|
193 |
*
|
194 |
*/
|
195 |
|
196 |
#ifndef _OGR_SRS_API_H_INCLUDED
|
197 |
#define _OGR_SRS_API_H_INCLUDED
|
198 |
|
199 |
#include "ogr_core.h" |
200 |
|
201 |
CPL_C_START |
202 |
|
203 |
/**
|
204 |
* \file ogr_srs_api.h
|
205 |
*
|
206 |
* C spatial reference system services and defines.
|
207 |
*
|
208 |
* See also: ogr_spatialref.h
|
209 |
*/
|
210 |
|
211 |
/* -------------------------------------------------------------------- */
|
212 |
/* Axis orientations (corresponds to CS_AxisOrientationEnum). */
|
213 |
/* -------------------------------------------------------------------- */
|
214 |
typedef enum { |
215 |
OAO_Other=0,
|
216 |
OAO_North=1,
|
217 |
OAO_South=2,
|
218 |
OAO_East=3,
|
219 |
OAO_West=4,
|
220 |
OAO_Up=5,
|
221 |
OAO_Down=6
|
222 |
} OGRAxisOrientation; |
223 |
|
224 |
/* -------------------------------------------------------------------- */
|
225 |
/* Datum types (corresponds to CS_DatumType). */
|
226 |
/* -------------------------------------------------------------------- */
|
227 |
|
228 |
typedef enum { |
229 |
ODT_HD_Min=1000,
|
230 |
ODT_HD_Other=1000,
|
231 |
ODT_HD_Classic=1001,
|
232 |
ODT_HD_Geocentric=1002,
|
233 |
ODT_HD_Max=1999,
|
234 |
ODT_VD_Min=2000,
|
235 |
ODT_VD_Other=2000,
|
236 |
ODT_VD_Orthometric=2001,
|
237 |
ODT_VD_Ellipsoidal=2002,
|
238 |
ODT_VD_AltitudeBarometric=2003,
|
239 |
ODT_VD_Normal=2004,
|
240 |
ODT_VD_GeoidModelDerived=2005,
|
241 |
ODT_VD_Depth=2006,
|
242 |
ODT_VD_Max=2999,
|
243 |
ODT_LD_Min=10000,
|
244 |
ODT_LD_Max=32767
|
245 |
} OGRDatumType; |
246 |
|
247 |
/* ==================================================================== */
|
248 |
/* Some "standard" strings. */
|
249 |
/* ==================================================================== */
|
250 |
|
251 |
#define SRS_PT_ALBERS_CONIC_EQUAL_AREA \
|
252 |
"Albers_Conic_Equal_Area"
|
253 |
#define SRS_PT_AZIMUTHAL_EQUIDISTANT "Azimuthal_Equidistant" |
254 |
#define SRS_PT_CASSINI_SOLDNER "Cassini_Soldner" |
255 |
#define SRS_PT_CYLINDRICAL_EQUAL_AREA "Cylindrical_Equal_Area" |
256 |
#define SRS_PT_ECKERT_IV "Eckert_IV" |
257 |
#define SRS_PT_ECKERT_VI "Eckert_VI" |
258 |
#define SRS_PT_EQUIDISTANT_CONIC "Equidistant_Conic" |
259 |
#define SRS_PT_EQUIRECTANGULAR "Equirectangular" |
260 |
#define SRS_PT_GALL_STEREOGRAPHIC "Gall_Stereographic" |
261 |
#define SRS_PT_GNOMONIC "Gnomonic" |
262 |
#define SRS_PT_HOTINE_OBLIQUE_MERCATOR \
|
263 |
"Hotine_Oblique_Mercator"
|
264 |
#define SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN \
|
265 |
"Hotine_Oblique_Mercator_Two_Point_Natural_Origin"
|
266 |
#define SRS_PT_LABORDE_OBLIQUE_MERCATOR \
|
267 |
"Laborde_Oblique_Mercator"
|
268 |
#define SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP \
|
269 |
"Lambert_Conformal_Conic_1SP"
|
270 |
#define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP \
|
271 |
"Lambert_Conformal_Conic_2SP"
|
272 |
#define SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM \
|
273 |
"Lambert_Conformal_Conic_2SP_Belgium)"
|
274 |
#define SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA \
|
275 |
"Lambert_Azimuthal_Equal_Area"
|
276 |
#define SRS_PT_MERCATOR_1SP "Mercator_1SP" |
277 |
#define SRS_PT_MERCATOR_2SP "Mercator_2SP" |
278 |
#define SRS_PT_MILLER_CYLINDRICAL "Miller_Cylindrical" |
279 |
#define SRS_PT_MOLLWEIDE "Mollweide" |
280 |
#define SRS_PT_NEW_ZEALAND_MAP_GRID \
|
281 |
"New_Zealand_Map_Grid"
|
282 |
#define SRS_PT_OBLIQUE_STEREOGRAPHIC \
|
283 |
"Oblique_Stereographic"
|
284 |
#define SRS_PT_ORTHOGRAPHIC "Orthographic" |
285 |
#define SRS_PT_POLAR_STEREOGRAPHIC \
|
286 |
"Polar_Stereographic"
|
287 |
#define SRS_PT_POLYCONIC "Polyconic" |
288 |
#define SRS_PT_ROBINSON "Robinson" |
289 |
#define SRS_PT_SINUSOIDAL "Sinusoidal" |
290 |
#define SRS_PT_STEREOGRAPHIC "Stereographic" |
291 |
#define SRS_PT_SWISS_OBLIQUE_CYLINDRICAL \
|
292 |
"Swiss_Oblique_Cylindrical"
|
293 |
#define SRS_PT_TRANSVERSE_MERCATOR \
|
294 |
"Transverse_Mercator"
|
295 |
#define SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED \
|
296 |
"Transverse_Mercator_South_Orientated"
|
297 |
|
298 |
/* special mapinfo variants on Transverse Mercator */
|
299 |
#define SRS_PT_TRANSVERSE_MERCATOR_MI_22 \
|
300 |
"Transverse_Mercator_MapInfo_22"
|
301 |
#define SRS_PT_TRANSVERSE_MERCATOR_MI_23 \
|
302 |
"Transverse_Mercator_MapInfo_23"
|
303 |
#define SRS_PT_TRANSVERSE_MERCATOR_MI_24 \
|
304 |
"Transverse_Mercator_MapInfo_24"
|
305 |
#define SRS_PT_TRANSVERSE_MERCATOR_MI_25 \
|
306 |
"Transverse_Mercator_MapInfo_25"
|
307 |
|
308 |
#define SRS_PT_TUNISIA_MINING_GRID \
|
309 |
"Tunisia_Mining_Grid"
|
310 |
#define SRS_PT_VANDERGRINTEN "VanDerGrinten" |
311 |
#define SRS_PT_KROVAK "Krovak" |
312 |
|
313 |
|
314 |
|
315 |
#define SRS_PP_CENTRAL_MERIDIAN "central_meridian" |
316 |
#define SRS_PP_SCALE_FACTOR "scale_factor" |
317 |
#define SRS_PP_STANDARD_PARALLEL_1 "standard_parallel_1" |
318 |
#define SRS_PP_STANDARD_PARALLEL_2 "standard_parallel_2" |
319 |
#define SRS_PP_PSEUDO_STD_PARALLEL_1 "pseudo_standard_parallel_1" |
320 |
#define SRS_PP_LONGITUDE_OF_CENTER "longitude_of_center" |
321 |
#define SRS_PP_LATITUDE_OF_CENTER "latitude_of_center" |
322 |
#define SRS_PP_LONGITUDE_OF_ORIGIN "longitude_of_origin" |
323 |
#define SRS_PP_LATITUDE_OF_ORIGIN "latitude_of_origin" |
324 |
#define SRS_PP_FALSE_EASTING "false_easting" |
325 |
#define SRS_PP_FALSE_NORTHING "false_northing" |
326 |
#define SRS_PP_AZIMUTH "azimuth" |
327 |
#define SRS_PP_LONGITUDE_OF_POINT_1 "longitude_of_point_1" |
328 |
#define SRS_PP_LATITUDE_OF_POINT_1 "latitude_of_point_1" |
329 |
#define SRS_PP_LONGITUDE_OF_POINT_2 "longitude_of_point_2" |
330 |
#define SRS_PP_LATITUDE_OF_POINT_2 "latitude_of_point_2" |
331 |
#define SRS_PP_LONGITUDE_OF_POINT_3 "longitude_of_point_3" |
332 |
#define SRS_PP_LATITUDE_OF_POINT_3 "latitude_of_point_3" |
333 |
#define SRS_PP_RECTIFIED_GRID_ANGLE "rectified_grid_angle" |
334 |
#define SRS_PP_LANDSAT_NUMBER "landsat_number" |
335 |
#define SRS_PP_PATH_NUMBER "path_number" |
336 |
#define SRS_PP_PERSPECTIVE_POINT_HEIGHT "perspective_point_height" |
337 |
#define SRS_PP_FIPSZONE "fipszone" |
338 |
#define SRS_PP_ZONE "zone" |
339 |
|
340 |
#define SRS_UL_METER "Meter" |
341 |
#define SRS_UL_FOOT "Foot (International)" /* or just "FOOT"? */ |
342 |
#define SRS_UL_FOOT_CONV "0.3048" |
343 |
#define SRS_UL_US_FOOT "U.S. Foot" /* or "US survey foot" */ |
344 |
#define SRS_UL_US_FOOT_CONV "0.3048006" |
345 |
#define SRS_UL_NAUTICAL_MILE "Nautical Mile" |
346 |
#define SRS_UL_NAUTICAL_MILE_CONV "1852.0" |
347 |
#define SRS_UL_LINK "Link" /* Based on US Foot */ |
348 |
#define SRS_UL_LINK_CONV "0.20116684023368047" |
349 |
#define SRS_UL_CHAIN "Chain" /* based on US Foot */ |
350 |
#define SRS_UL_CHAIN_CONV "2.0116684023368047" |
351 |
#define SRS_UL_ROD "Rod" /* based on US Foot */ |
352 |
#define SRS_UL_ROD_CONV "5.02921005842012" |
353 |
|
354 |
#define SRS_UA_DEGREE "degree" |
355 |
#define SRS_UA_DEGREE_CONV "0.0174532925199433" |
356 |
#define SRS_UA_RADIAN "radian" |
357 |
|
358 |
#define SRS_PM_GREENWICH "Greenwich" |
359 |
|
360 |
#define SRS_DN_NAD27 "North_American_Datum_1927" |
361 |
#define SRS_DN_NAD83 "North_American_Datum_1983" |
362 |
#define SRS_DN_WGS72 "WGS_1972" |
363 |
#define SRS_DN_WGS84 "WGS_1984" |
364 |
|
365 |
#define SRS_WGS84_SEMIMAJOR 6378137.0 |
366 |
#define SRS_WGS84_INVFLATTENING 298.257223563 |
367 |
|
368 |
/* -------------------------------------------------------------------- */
|
369 |
/* C Wrappers for C++ objects and methods. */
|
370 |
/* -------------------------------------------------------------------- */
|
371 |
#ifndef _DEFINED_OGRSpatialReferenceH
|
372 |
#define _DEFINED_OGRSpatialReferenceH
|
373 |
|
374 |
typedef void *OGRSpatialReferenceH; |
375 |
typedef void *OGRCoordinateTransformationH; |
376 |
|
377 |
#endif
|
378 |
|
379 |
|
380 |
OGRSpatialReferenceH CPL_DLL |
381 |
OSRNewSpatialReference( const char * /* = NULL */); |
382 |
OGRSpatialReferenceH CPL_DLL OSRCloneGeogCS( OGRSpatialReferenceH ); |
383 |
OGRSpatialReferenceH CPL_DLL OSRCloneCS( OGRSpatialReferenceH ); |
384 |
void CPL_DLL OSRDestroySpatialReference( OGRSpatialReferenceH );
|
385 |
|
386 |
int CPL_DLL OSRReference( OGRSpatialReferenceH );
|
387 |
int CPL_DLL OSRDereference( OGRSpatialReferenceH );
|
388 |
|
389 |
OGRErr CPL_DLL OSRValidate( OGRSpatialReferenceH ); |
390 |
OGRErr CPL_DLL OSRFixupOrdering( OGRSpatialReferenceH ); |
391 |
OGRErr CPL_DLL OSRFixup( OGRSpatialReferenceH ); |
392 |
OGRErr CPL_DLL OSRStripCTParms( OGRSpatialReferenceH ); |
393 |
|
394 |
OGRErr CPL_DLL OSRImportFromEPSG( OGRSpatialReferenceH, int );
|
395 |
OGRErr CPL_DLL OSRImportFromWkt( OGRSpatialReferenceH, char ** );
|
396 |
OGRErr CPL_DLL OSRImportFromProj4( OGRSpatialReferenceH, const char *); |
397 |
OGRErr CPL_DLL OSRImportFromESRI( OGRSpatialReferenceH, char **);
|
398 |
OGRErr CPL_DLL OSRImportFromPCI( OGRSpatialReferenceH hSRS, const char *, |
399 |
const char *, double * ); |
400 |
OGRErr CPL_DLL OSRImportFromUSGS( OGRSpatialReferenceH, |
401 |
long, long, double *, long); |
402 |
OGRErr CPL_DLL OSRImportFromXML( OGRSpatialReferenceH, const char * ); |
403 |
OGRErr CPL_DLL OSRImportFromDict( OGRSpatialReferenceH, const char *, |
404 |
const char * ); |
405 |
OGRErr CPL_DLL OSRExportToWkt( OGRSpatialReferenceH, char ** );
|
406 |
OGRErr CPL_DLL OSRExportToPrettyWkt( OGRSpatialReferenceH, char **, int); |
407 |
OGRErr CPL_DLL OSRExportToProj4( OGRSpatialReferenceH, char **);
|
408 |
OGRErr CPL_DLL OSRExportToPCI( OGRSpatialReferenceH, char **, char **, |
409 |
double ** );
|
410 |
OGRErr CPL_DLL OSRExportToUSGS( OGRSpatialReferenceH, long *, long *, |
411 |
double **, long * ); |
412 |
OGRErr CPL_DLL OSRExportToXML( OGRSpatialReferenceH, char **, const char * ); |
413 |
|
414 |
OGRErr CPL_DLL OSRMorphToESRI( OGRSpatialReferenceH ); |
415 |
OGRErr CPL_DLL OSRMorphFromESRI( OGRSpatialReferenceH ); |
416 |
|
417 |
OGRErr CPL_DLL OSRSetAttrValue( OGRSpatialReferenceH hSRS, |
418 |
const char * pszNodePath, |
419 |
const char * pszNewNodeValue ); |
420 |
const char CPL_DLL * OSRGetAttrValue( OGRSpatialReferenceH hSRS, |
421 |
const char * pszName, int iChild /* = 0 */ ); |
422 |
|
423 |
OGRErr CPL_DLL OSRSetAngularUnits( OGRSpatialReferenceH, const char *, double ); |
424 |
double CPL_DLL OSRGetAngularUnits( OGRSpatialReferenceH, char ** ); |
425 |
OGRErr CPL_DLL OSRSetLinearUnits( OGRSpatialReferenceH, const char *, double ); |
426 |
double CPL_DLL OSRGetLinearUnits( OGRSpatialReferenceH, char ** ); |
427 |
|
428 |
double CPL_DLL OSRGetPrimeMeridian( OGRSpatialReferenceH, char ** ); |
429 |
|
430 |
int CPL_DLL OSRIsGeographic( OGRSpatialReferenceH );
|
431 |
int CPL_DLL OSRIsLocal( OGRSpatialReferenceH );
|
432 |
int CPL_DLL OSRIsProjected( OGRSpatialReferenceH );
|
433 |
int CPL_DLL OSRIsSameGeogCS( OGRSpatialReferenceH, OGRSpatialReferenceH );
|
434 |
int CPL_DLL OSRIsSame( OGRSpatialReferenceH, OGRSpatialReferenceH );
|
435 |
|
436 |
OGRErr CPL_DLL OSRSetLocalCS( OGRSpatialReferenceH hSRS, const char *pszName ); |
437 |
OGRErr CPL_DLL OSRSetProjCS( OGRSpatialReferenceH hSRS, const char * pszName ); |
438 |
OGRErr CPL_DLL OSRSetWellKnownGeogCS( OGRSpatialReferenceH hSRS, |
439 |
const char * pszName ); |
440 |
OGRErr CPL_DLL OSRSetFromUserInput( OGRSpatialReferenceH hSRS, |
441 |
const char * ); |
442 |
OGRErr CPL_DLL OSRCopyGeogCSFrom( OGRSpatialReferenceH hSRS, |
443 |
OGRSpatialReferenceH hSrcSRS ); |
444 |
OGRErr CPL_DLL OSRSetTOWGS84( OGRSpatialReferenceH hSRS, |
445 |
double, double, double, |
446 |
double, double, double, double ); |
447 |
OGRErr CPL_DLL OSRGetTOWGS84( OGRSpatialReferenceH hSRS, double *, int ); |
448 |
|
449 |
|
450 |
OGRErr CPL_DLL OSRSetGeogCS( OGRSpatialReferenceH hSRS, |
451 |
const char * pszGeogName, |
452 |
const char * pszDatumName, |
453 |
const char * pszEllipsoidName, |
454 |
double dfSemiMajor, double dfInvFlattening, |
455 |
const char * pszPMName /* = NULL */, |
456 |
double dfPMOffset /* = 0.0 */, |
457 |
const char * pszUnits /* = NULL */, |
458 |
double dfConvertToRadians /* = 0.0 */ ); |
459 |
|
460 |
double CPL_DLL OSRGetSemiMajor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); |
461 |
double CPL_DLL OSRGetSemiMinor( OGRSpatialReferenceH, OGRErr * /* = NULL */ ); |
462 |
double CPL_DLL OSRGetInvFlattening( OGRSpatialReferenceH, OGRErr * /*=NULL*/); |
463 |
|
464 |
OGRErr CPL_DLL OSRSetAuthority( OGRSpatialReferenceH hSRS, |
465 |
const char * pszTargetKey, |
466 |
const char * pszAuthority, |
467 |
int nCode );
|
468 |
const char CPL_DLL *OSRGetAuthorityCode( OGRSpatialReferenceH hSRS, |
469 |
const char * pszTargetKey ); |
470 |
const char CPL_DLL *OSRGetAuthorityName( OGRSpatialReferenceH hSRS, |
471 |
const char * pszTargetKey ); |
472 |
OGRErr CPL_DLL OSRSetProjection( OGRSpatialReferenceH, const char * ); |
473 |
OGRErr CPL_DLL OSRSetProjParm( OGRSpatialReferenceH, const char *, double ); |
474 |
double CPL_DLL OSRGetProjParm( OGRSpatialReferenceH hSRS,
|
475 |
const char * pszParmName, |
476 |
double dfDefault /* = 0.0 */, |
477 |
OGRErr * /* = NULL */ );
|
478 |
OGRErr CPL_DLL OSRSetNormProjParm( OGRSpatialReferenceH, const char *, double); |
479 |
double CPL_DLL OSRGetNormProjParm( OGRSpatialReferenceH hSRS,
|
480 |
const char * pszParmName, |
481 |
double dfDefault /* = 0.0 */, |
482 |
OGRErr * /* = NULL */ );
|
483 |
|
484 |
OGRErr CPL_DLL OSRSetUTM( OGRSpatialReferenceH hSRS, int nZone, int bNorth ); |
485 |
int CPL_DLL OSRGetUTMZone( OGRSpatialReferenceH hSRS, int *pbNorth ); |
486 |
OGRErr CPL_DLL OSRSetStatePlane( OGRSpatialReferenceH hSRS, |
487 |
int nZone, int bNAD83 ); |
488 |
OGRErr CPL_DLL OSRSetStatePlaneWithUnits( OGRSpatialReferenceH hSRS, |
489 |
int nZone, int bNAD83, |
490 |
const char *pszOverrideUnitName, |
491 |
double dfOverrideUnit );
|
492 |
OGRErr CPL_DLL OSRAutoIdentifyEPSG( OGRSpatialReferenceH hSRS ); |
493 |
|
494 |
/** Albers Conic Equal Area */
|
495 |
OGRErr CPL_DLL OSRSetACEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, |
496 |
double dfCenterLat, double dfCenterLong, |
497 |
double dfFalseEasting, double dfFalseNorthing ); |
498 |
|
499 |
/** Azimuthal Equidistant */
|
500 |
OGRErr CPL_DLL OSRSetAE( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
501 |
double dfFalseEasting, double dfFalseNorthing ); |
502 |
|
503 |
/** Cylindrical Equal Area */
|
504 |
OGRErr CPL_DLL OSRSetCEA( OGRSpatialReferenceH hSRS, double dfStdP1, double dfCentralMeridian, |
505 |
double dfFalseEasting, double dfFalseNorthing ); |
506 |
|
507 |
/** Cassini-Soldner */
|
508 |
OGRErr CPL_DLL OSRSetCS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
509 |
double dfFalseEasting, double dfFalseNorthing ); |
510 |
|
511 |
/** Equidistant Conic */
|
512 |
OGRErr CPL_DLL OSRSetEC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, |
513 |
double dfCenterLat, double dfCenterLong, |
514 |
double dfFalseEasting, double dfFalseNorthing ); |
515 |
|
516 |
/** Eckert IV */
|
517 |
OGRErr CPL_DLL OSRSetEckertIV( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
|
518 |
double dfFalseEasting, double dfFalseNorthing ); |
519 |
|
520 |
/** Eckert VI */
|
521 |
OGRErr CPL_DLL OSRSetEckertVI( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
|
522 |
double dfFalseEasting, double dfFalseNorthing ); |
523 |
|
524 |
/** Equirectangular */
|
525 |
OGRErr CPL_DLL OSRSetEquirectangular(OGRSpatialReferenceH hSRS, |
526 |
double dfCenterLat, double dfCenterLong, |
527 |
double dfFalseEasting, double dfFalseNorthing ); |
528 |
|
529 |
/** Gall Stereograpic */
|
530 |
OGRErr CPL_DLL OSRSetGS( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
|
531 |
double dfFalseEasting, double dfFalseNorthing ); |
532 |
|
533 |
/** Gnomonic */
|
534 |
OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS, |
535 |
double dfCenterLat, double dfCenterLong, |
536 |
double dfFalseEasting, double dfFalseNorthing ); |
537 |
|
538 |
/** Hotine Oblique Mercator using azimuth angle */
|
539 |
OGRErr CPL_DLL OSRSetHOM( OGRSpatialReferenceH hSRS, |
540 |
double dfCenterLat, double dfCenterLong, |
541 |
double dfAzimuth, double dfRectToSkew, |
542 |
double dfScale,
|
543 |
double dfFalseEasting, double dfFalseNorthing ); |
544 |
|
545 |
/** Hotine Oblique Mercator using two points on centerline */
|
546 |
OGRErr CPL_DLL OSRSetHOM2PNO( OGRSpatialReferenceH hSRS, double dfCenterLat,
|
547 |
double dfLat1, double dfLong1, |
548 |
double dfLat2, double dfLong2, |
549 |
double dfScale,
|
550 |
double dfFalseEasting, double dfFalseNorthing ); |
551 |
|
552 |
/** Krovak Oblique Conic Conformal */
|
553 |
OGRErr CPL_DLL OSRSetKrovak( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
554 |
double dfAzimuth, double dfPseudoStdParallelLat, |
555 |
double dfScale,
|
556 |
double dfFalseEasting, double dfFalseNorthing ); |
557 |
|
558 |
/** Lambert Azimuthal Equal-Area */
|
559 |
OGRErr CPL_DLL OSRSetLAEA( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
560 |
double dfFalseEasting, double dfFalseNorthing ); |
561 |
|
562 |
/** Lambert Conformal Conic */
|
563 |
OGRErr CPL_DLL OSRSetLCC( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, |
564 |
double dfCenterLat, double dfCenterLong, |
565 |
double dfFalseEasting, double dfFalseNorthing ); |
566 |
|
567 |
/** Lambert Conformal Conic 1SP */
|
568 |
OGRErr CPL_DLL OSRSetLCC1SP( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
569 |
double dfScale,
|
570 |
double dfFalseEasting, double dfFalseNorthing ); |
571 |
|
572 |
/** Lambert Conformal Conic (Belgium) */
|
573 |
OGRErr CPL_DLL OSRSetLCCB( OGRSpatialReferenceH hSRS, double dfStdP1, double dfStdP2, |
574 |
double dfCenterLat, double dfCenterLong, |
575 |
double dfFalseEasting, double dfFalseNorthing ); |
576 |
|
577 |
/** Miller Cylindrical */
|
578 |
OGRErr CPL_DLL OSRSetMC( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
579 |
double dfFalseEasting, double dfFalseNorthing ); |
580 |
|
581 |
/** Mercator */
|
582 |
OGRErr CPL_DLL OSRSetMercator( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
583 |
double dfScale,
|
584 |
double dfFalseEasting, double dfFalseNorthing ); |
585 |
|
586 |
/** Mollweide */
|
587 |
OGRErr CPL_DLL OSRSetMollweide( OGRSpatialReferenceH hSRS, double dfCentralMeridian,
|
588 |
double dfFalseEasting, double dfFalseNorthing ); |
589 |
|
590 |
/** New Zealand Map Grid */
|
591 |
OGRErr CPL_DLL OSRSetNZMG( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
592 |
double dfFalseEasting, double dfFalseNorthing ); |
593 |
|
594 |
/** Oblique Stereographic */
|
595 |
OGRErr CPL_DLL OSRSetOS( OGRSpatialReferenceH hSRS, double dfOriginLat, double dfCMeridian, |
596 |
double dfScale,
|
597 |
double dfFalseEasting,double dfFalseNorthing); |
598 |
|
599 |
/** Orthographic */
|
600 |
OGRErr CPL_DLL OSRSetOrthographic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
601 |
double dfFalseEasting,double dfFalseNorthing); |
602 |
|
603 |
/** Polyconic */
|
604 |
OGRErr CPL_DLL OSRSetPolyconic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
605 |
double dfFalseEasting, double dfFalseNorthing ); |
606 |
|
607 |
/** Polar Stereographic */
|
608 |
OGRErr CPL_DLL OSRSetPS( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
609 |
double dfScale,
|
610 |
double dfFalseEasting, double dfFalseNorthing); |
611 |
|
612 |
/** Robinson */
|
613 |
OGRErr CPL_DLL OSRSetRobinson( OGRSpatialReferenceH hSRS, double dfCenterLong,
|
614 |
double dfFalseEasting, double dfFalseNorthing ); |
615 |
|
616 |
/** Sinusoidal */
|
617 |
OGRErr CPL_DLL OSRSetSinusoidal( OGRSpatialReferenceH hSRS, double dfCenterLong,
|
618 |
double dfFalseEasting, double dfFalseNorthing ); |
619 |
|
620 |
/** Stereographic */
|
621 |
OGRErr CPL_DLL OSRSetStereographic( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
622 |
double dfScale,
|
623 |
double dfFalseEasting,double dfFalseNorthing); |
624 |
|
625 |
/** Swiss Oblique Cylindrical */
|
626 |
OGRErr CPL_DLL OSRSetSOC( OGRSpatialReferenceH hSRS, double dfLatitudeOfOrigin, double dfCentralMeridian, |
627 |
double dfFalseEasting, double dfFalseNorthing ); |
628 |
|
629 |
/** Transverse Mercator */
|
630 |
OGRErr CPL_DLL OSRSetTM( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
631 |
double dfScale,
|
632 |
double dfFalseEasting, double dfFalseNorthing ); |
633 |
|
634 |
/** Transverse Mercator variant */
|
635 |
OGRErr CPL_DLL OSRSetTMVariant( |
636 |
OGRSpatialReferenceH hSRS, const char *pszVariantName, |
637 |
double dfCenterLat, double dfCenterLong, |
638 |
double dfScale,
|
639 |
double dfFalseEasting, double dfFalseNorthing ); |
640 |
|
641 |
/** Tunesia Mining Grid */
|
642 |
OGRErr CPL_DLL OSRSetTMG( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, |
643 |
double dfFalseEasting, double dfFalseNorthing ); |
644 |
|
645 |
/** Transverse Mercator (South Oriented) */
|
646 |
OGRErr CPL_DLL OSRSetTMSO( OGRSpatialReferenceH hSRS, |
647 |
double dfCenterLat, double dfCenterLong, |
648 |
double dfScale,
|
649 |
double dfFalseEasting, double dfFalseNorthing ); |
650 |
|
651 |
/** VanDerGrinten */
|
652 |
OGRErr CPL_DLL OSRSetVDG( OGRSpatialReferenceH hSRS, |
653 |
double dfCenterLong,
|
654 |
double dfFalseEasting, double dfFalseNorthing ); |
655 |
|
656 |
void CPL_DLL OSRCleanup( void ); |
657 |
|
658 |
/* -------------------------------------------------------------------- */
|
659 |
/* OGRCoordinateTransform C API. */
|
660 |
/* -------------------------------------------------------------------- */
|
661 |
OGRCoordinateTransformationH CPL_DLL |
662 |
OCTNewCoordinateTransformation( OGRSpatialReferenceH hSourceSRS, |
663 |
OGRSpatialReferenceH hTargetSRS ); |
664 |
void CPL_DLL
|
665 |
OCTDestroyCoordinateTransformation( OGRCoordinateTransformationH ); |
666 |
|
667 |
int CPL_DLL OCTTransform( OGRCoordinateTransformationH hCT,
|
668 |
int nCount, double *x, double *y, double *z ); |
669 |
int CPL_DLL OCTTransformEx( OGRCoordinateTransformationH hCT,
|
670 |
int nCount, double *x, double *y, double *z, |
671 |
int *pabSuccess );
|
672 |
|
673 |
/* this is really private to OGR. */
|
674 |
char *OCTProj4Normalize( const char *pszProj4Src ); |
675 |
|
676 |
/* -------------------------------------------------------------------- */
|
677 |
/* Projection transform dictionary query. */
|
678 |
/* -------------------------------------------------------------------- */
|
679 |
|
680 |
char CPL_DLL ** OPTGetProjectionMethods();
|
681 |
char CPL_DLL ** OPTGetParameterList( const char * pszProjectionMethod, |
682 |
char ** ppszUserName );
|
683 |
int CPL_DLL OPTGetParameterInfo( const char * pszProjectionMethod, |
684 |
const char * pszParameterName, |
685 |
char ** ppszUserName,
|
686 |
char ** ppszType,
|
687 |
double *pdfDefaultValue );
|
688 |
|
689 |
CPL_C_END |
690 |
|
691 |
#endif /* ndef _OGR_SRS_API_H_INCLUDED */ |