svn-gvsig-desktop / tags / v10_RC2c / libraries / libjni-gdal / include / ogr_srs_api.h @ 8745
History | View | Annotate | Download (29.4 KB)
1 | 716 | igbrotru | /******************************************************************************
|
---|---|---|---|
2 | * $Id$
|
||
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 | 7847 | nacho | * Revision 1.2.10.1 2006-10-04 06:55:46 nacho
|
32 | 716 | igbrotru | * *** empty log message ***
|
33 | *
|
||
34 | 7847 | nacho | * 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 | 3540 | nacho | * 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 | 716 | igbrotru | * 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 */ |