GDAL

- Main Page
- Related Pages
- Classes
- Files
- Download
- Issue Tracker

- File List
- File Members

ogr_spatialref.h
Go to the documentation of this file.
1 /******************************************************************************
2 * $Id$
3 *
4 * Project: OpenGIS Simple Features Reference Implementation
5 * Purpose: Classes for manipulating spatial reference systems in a
6 * platform non-specific manner.
7 * Author: Frank Warmerdam, warmerdam@pobox.com
8 *
9 ******************************************************************************
10 * Copyright (c) 1999, Les Technologies SoftMap Inc.
11 * Copyright (c) 2008-2013, Even Rouault <even dot rouault at mines-paris dot org>
12 *
13 * Permission is hereby granted, free of charge, to any person obtaining a
14 * copy of this software and associated documentation files (the "Software"),
15 * to deal in the Software without restriction, including without limitation
16 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17 * and/or sell copies of the Software, and to permit persons to whom the
18 * Software is furnished to do so, subject to the following conditions:
19 *
20 * The above copyright notice and this permission notice shall be included
21 * in all copies or substantial portions of the Software.
22 *
23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29 * DEALINGS IN THE SOFTWARE.
30 ****************************************************************************/
31
32 #ifndef OGR_SPATIALREF_H_INCLUDED
33 #define OGR_SPATIALREF_H_INCLUDED
34
35 #include "cpl_string.h"
36 #include "ogr_srs_api.h"
37
38 #include <map>
39 #include <vector>
40
47 /************************************************************************/
48 /* OGR_SRSNode */
49 /************************************************************************/
50
64 class CPL_DLL OGR_SRSNode
65 {
66 char *pszValue;
67
68 OGR_SRSNode **papoChildNodes;
69 OGR_SRSNode *poParent;
70
71 int nChildren;
72
73 int NeedsQuoting() const;
74 OGRErr importFromWkt( char **, int nRecLevel, int* pnNodes );
75
76 public:
77 explicit OGR_SRSNode(const char * = nullptr);
78 ~OGR_SRSNode();
79
83 int IsLeafNode() const { return nChildren == 0; }
84
85 int GetChildCount() const { return nChildren; }
86 OGR_SRSNode *GetChild( int );
87 const OGR_SRSNode *GetChild( int ) const;
88
89 OGR_SRSNode *GetNode( const char * );
90 const OGR_SRSNode *GetNode( const char * ) const;
91
92 void InsertChild( OGR_SRSNode *, int );
93 void AddChild( OGR_SRSNode * );
94 int FindChild( const char * ) const;
95 void DestroyChild( int );
96 void ClearChildren();
97 void StripNodes( const char * );
98
99 const char *GetValue() const { return pszValue; }
100 void SetValue( const char * );
101
102 void MakeValueSafe();
103 OGRErr FixupOrdering();
104
105 OGR_SRSNode *Clone() const;
106
107 OGRErr importFromWkt( char ** );
108 OGRErr exportToWkt( char ** ) const;
109 OGRErr exportToPrettyWkt( char **, int = 1) const;
110
111 OGRErr applyRemapper( const char *pszNode,
112 char **papszSrcValues,
113 char **papszDstValues,
114 int nStepSize = 1,
115 int bChildOfHit = FALSE );
116 };
117
118 /************************************************************************/
119 /* OGRSpatialReference */
120 /************************************************************************/
121
139 class CPL_DLL OGRSpatialReference
140 {
141 double dfFromGreenwich;
142 double dfToMeter;
143 double dfToDegrees;
144
145 OGR_SRSNode *poRoot;
146
147 int nRefCount;
148 int bNormInfoSet;
149
150 static OGRErr Validate(OGR_SRSNode *poRoot);
151 static OGRErr ValidateAuthority(OGR_SRSNode *poRoot);
152 static OGRErr ValidateAxis(OGR_SRSNode *poRoot);
153 static OGRErr ValidateUnit(OGR_SRSNode *poRoot);
154 static OGRErr ValidateVertDatum(OGR_SRSNode *poRoot);
155 static OGRErr ValidateProjection( OGR_SRSNode* poRoot );
156 static int IsAliasFor( const char *, const char * );
157 void GetNormInfo() const;
158
159 OGRErr importFromURNPart(const char* pszAuthority,
160 const char* pszCode,
161 const char* pszURN);
162
163 OGRErr importFromEPSGAInternal(int nCode,
164 const char* pszSRSType);
165
166 static const std::vector<OGRSpatialReference*>* GetSRSCache(
167 const char* pszSRSType,
168 const std::map<CPLString, int>*& poMapESRICSNameToCodeOut);
169
170 public:
171 OGRSpatialReference(const OGRSpatialReference&);
172 explicit OGRSpatialReference(const char * = nullptr);
173
174 virtual ~OGRSpatialReference();
175
176 static void DestroySpatialReference(OGRSpatialReference* poSRS);
177
178 OGRSpatialReference &operator=(const OGRSpatialReference&);
179
180 int Reference();
181 int Dereference();
182 int GetReferenceCount() const { return nRefCount; }
183 void Release();
184
185 OGRSpatialReference *Clone() const;
186 OGRSpatialReference *CloneGeogCS() const;
187
188 void dumpReadable();
189 OGRErr exportToWkt( char ** ) const;
190 OGRErr exportToPrettyWkt( char **, int = FALSE) const;
191 OGRErr exportToProj4( char ** ) const;
192 OGRErr exportToPCI( char **, char **, double ** ) const;
193 OGRErr exportToUSGS( long *, long *, double **, long * ) const;
194 OGRErr exportToXML( char **, const char * = nullptr ) const;
195 OGRErr exportToPanorama( long *, long *, long *, long *,
196 double * ) const;
197 OGRErr exportToERM( char *pszProj, char *pszDatum, char *pszUnits );
198 OGRErr exportToMICoordSys( char ** ) const;
199
200 OGRErr importFromWkt( char ** );
201 OGRErr importFromWkt( const char* );
202 OGRErr importFromProj4( const char * );
203 OGRErr importFromEPSG( int );
204 OGRErr importFromEPSGA( int );
205 OGRErr importFromESRI( char ** );
206 OGRErr importFromPCI( const char *, const char * = nullptr,
207 double * = nullptr );
208
209 #define USGS_ANGLE_DECIMALDEGREES 0
210 #define USGS_ANGLE_PACKEDDMS TRUE
211 #define USGS_ANGLE_RADIANS 2
212 OGRErr importFromUSGS( long iProjSys, long iZone,
213 double *padfPrjParams, long iDatum,
214 int nUSGSAngleFormat = USGS_ANGLE_PACKEDDMS );
215 OGRErr importFromPanorama( long, long, long, double* );
216 OGRErr importFromOzi( const char * const* papszLines );
217 OGRErr importFromWMSAUTO( const char *pszAutoDef );
218 OGRErr importFromXML( const char * );
219 OGRErr importFromDict( const char *pszDict, const char *pszCode );
220 OGRErr importFromURN( const char * );
221 OGRErr importFromCRSURL( const char * );
222 OGRErr importFromERM( const char *pszProj, const char *pszDatum,
223 const char *pszUnits );
224 OGRErr importFromUrl( const char * );
225 OGRErr importFromMICoordSys( const char * );
226
227 OGRErr morphToESRI();
228 OGRErr morphFromESRI();
229
230 OGRSpatialReference* convertToOtherProjection(
231 const char* pszTargetProjection,
232 const char* const* papszOptions = nullptr ) const;
233
234 OGRErr Validate();
235 OGRErr StripCTParms( OGR_SRSNode * = nullptr );
236 OGRErr StripVertical();
237 OGRErr FixupOrdering();
238 OGRErr Fixup();
239
240 int EPSGTreatsAsLatLong();
241 int EPSGTreatsAsNorthingEasting();
242 const char *GetAxis( const char *pszTargetKey, int iAxis,
243 OGRAxisOrientation *peOrientation ) const;
244 OGRErr SetAxes( const char *pszTargetKey,
245 const char *pszXAxisName,
246 OGRAxisOrientation eXAxisOrientation,
247 const char *pszYAxisName,
248 OGRAxisOrientation eYAxisOrientation );
249
250 // Machinery for accessing parse nodes
251
253 OGR_SRSNode *GetRoot() { return poRoot; }
255 const OGR_SRSNode *GetRoot() const { return poRoot; }
256 void SetRoot( OGR_SRSNode * );
257
258 OGR_SRSNode *GetAttrNode(const char *);
259 const OGR_SRSNode *GetAttrNode(const char *) const;
260 const char *GetAttrValue(const char *, int = 0) const;
261
262 OGRErr SetNode( const char *, const char * );
263 OGRErr SetNode( const char *, double );
264
265 OGRErr SetLinearUnitsAndUpdateParameters( const char *pszName,
266 double dfInMeters );
267 OGRErr SetLinearUnits( const char *pszName, double dfInMeters );
268 OGRErr SetTargetLinearUnits( const char *pszTargetKey,
269 const char *pszName, double dfInMeters );
270 double GetLinearUnits( char ** = nullptr ) const;
271 double GetTargetLinearUnits( const char *pszTargetKey,
272 char ** ppszRetName = nullptr ) const;
273
274 OGRErr SetAngularUnits( const char *pszName, double dfInRadians );
275 double GetAngularUnits( char ** = nullptr ) const;
276
277 double GetPrimeMeridian( char ** = nullptr ) const;
278
279 int IsGeographic() const;
280 int IsProjected() const;
281 int IsGeocentric() const;
282 int IsLocal() const;
283 int IsVertical() const;
284 int IsCompound() const;
285 int IsSameGeogCS( const OGRSpatialReference * ) const;
286 int IsSameGeogCS( const OGRSpatialReference *,
287 const char* const * papszOptions ) const;
288 int IsSameVertCS( const OGRSpatialReference * ) const;
289 int IsSame( const OGRSpatialReference * ) const;
290 int IsSame( const OGRSpatialReference *,
291 const char* const * papszOptions ) const;
292
293 void Clear();
294 OGRErr SetLocalCS( const char * );
295 OGRErr SetProjCS( const char * );
296 OGRErr SetProjection( const char * );
297 OGRErr SetGeocCS( const char * pszGeocName );
298 OGRErr SetGeogCS( const char * pszGeogName,
299 const char * pszDatumName,
300 const char * pszEllipsoidName,
301 double dfSemiMajor, double dfInvFlattening,
302 const char * pszPMName = nullptr,
303 double dfPMOffset = 0.0,
304 const char * pszUnits = nullptr,
305 double dfConvertToRadians = 0.0 );
306 OGRErr SetWellKnownGeogCS( const char * );
307 OGRErr CopyGeogCSFrom( const OGRSpatialReference * poSrcSRS );
308 OGRErr SetVertCS( const char *pszVertCSName,
309 const char *pszVertDatumName,
310 int nVertDatumClass = 2005 );
311 OGRErr SetCompoundCS( const char *pszName,
312 const OGRSpatialReference *poHorizSRS,
313 const OGRSpatialReference *poVertSRS );
314
315 OGRErr SetFromUserInput( const char * );
316
317 OGRErr SetTOWGS84( double, double, double,
318 double = 0.0, double = 0.0, double = 0.0,
319 double = 0.0 );
320 OGRErr GetTOWGS84( double *padfCoef, int nCoeff = 7 ) const;
321
322 double GetSemiMajor( OGRErr * = nullptr ) const;
323 double GetSemiMinor( OGRErr * = nullptr ) const;
324 double GetInvFlattening( OGRErr * = nullptr ) const;
325 double GetEccentricity() const;
326 double GetSquaredEccentricity() const;
327
328 OGRErr SetAuthority( const char * pszTargetKey,
329 const char * pszAuthority,
330 int nCode );
331
332 OGRErr AutoIdentifyEPSG();
333 OGRSpatialReferenceH* FindMatches( char** papszOptions,
334 int* pnEntries,
335 int** ppanMatchConfidence ) const;
336
337 int GetEPSGGeogCS();
338
339 const char *GetAuthorityCode( const char * pszTargetKey ) const;
340 const char *GetAuthorityName( const char * pszTargetKey ) const;
341
342 const char *GetExtension( const char *pszTargetKey,
343 const char *pszName,
344 const char *pszDefault = nullptr ) const;
345 OGRErr SetExtension( const char *pszTargetKey,
346 const char *pszName,
347 const char *pszValue );
348
349 int FindProjParm( const char *pszParameter,
350 const OGR_SRSNode *poPROJCS=nullptr ) const;
351 OGRErr SetProjParm( const char *, double );
352 double GetProjParm( const char *, double =0.0, OGRErr* = nullptr ) const;
353
354 OGRErr SetNormProjParm( const char *, double );
355 double GetNormProjParm( const char *, double=0.0, OGRErr* =nullptr)const;
356
357 static int IsAngularParameter( const char * );
358 static int IsLongitudeParameter( const char * );
359 static int IsLinearParameter( const char * );
360
362 OGRErr SetACEA( double dfStdP1, double dfStdP2,
363 double dfCenterLat, double dfCenterLong,
364 double dfFalseEasting, double dfFalseNorthing );
365
367 OGRErr SetAE( double dfCenterLat, double dfCenterLong,
368 double dfFalseEasting, double dfFalseNorthing );
369
371 OGRErr SetBonne( double dfStdP1, double dfCentralMeridian,
372 double dfFalseEasting, double dfFalseNorthing );
373
375 OGRErr SetCEA( double dfStdP1, double dfCentralMeridian,
376 double dfFalseEasting, double dfFalseNorthing );
377
379 OGRErr SetCS( double dfCenterLat, double dfCenterLong,
380 double dfFalseEasting, double dfFalseNorthing );
381
383 OGRErr SetEC( double dfStdP1, double dfStdP2,
384 double dfCenterLat, double dfCenterLong,
385 double dfFalseEasting, double dfFalseNorthing );
386
388 OGRErr SetEckert( int nVariation, double dfCentralMeridian,
389 double dfFalseEasting, double dfFalseNorthing );
390
392 OGRErr SetEckertIV( double dfCentralMeridian,
393 double dfFalseEasting, double dfFalseNorthing );
394
396 OGRErr SetEckertVI( double dfCentralMeridian,
397 double dfFalseEasting, double dfFalseNorthing );
398
400 OGRErr SetEquirectangular(double dfCenterLat, double dfCenterLong,
401 double dfFalseEasting, double dfFalseNorthing );
403 OGRErr SetEquirectangular2( double dfCenterLat, double dfCenterLong,
404 double dfPseudoStdParallel1,
405 double dfFalseEasting, double dfFalseNorthing );
406
408 OGRErr SetGEOS( double dfCentralMeridian, double dfSatelliteHeight,
409 double dfFalseEasting, double dfFalseNorthing );
410
412 OGRErr SetGH( double dfCentralMeridian,
413 double dfFalseEasting, double dfFalseNorthing );
414
416 OGRErr SetIGH();
417
419 OGRErr SetGS( double dfCentralMeridian,
420 double dfFalseEasting, double dfFalseNorthing );
421
423 OGRErr SetGaussSchreiberTMercator(double dfCenterLat, double dfCenterLong,
424 double dfScale,
425 double dfFalseEasting, double dfFalseNorthing );
426
428 OGRErr SetGnomonic(double dfCenterLat, double dfCenterLong,
429 double dfFalseEasting, double dfFalseNorthing );
430
432 OGRErr SetHOM( double dfCenterLat, double dfCenterLong,
433 double dfAzimuth, double dfRectToSkew,
434 double dfScale,
435 double dfFalseEasting, double dfFalseNorthing );
436
438 OGRErr SetHOM2PNO( double dfCenterLat,
439 double dfLat1, double dfLong1,
440 double dfLat2, double dfLong2,
441 double dfScale,
442 double dfFalseEasting, double dfFalseNorthing );
443
444 #ifdef undef
445
446 OGRErr SetOM( double dfCenterLat, double dfCenterLong,
447 double dfAzimuth, double dfRectToSkew,
448 double dfScale,
449 double dfFalseEasting, double dfFalseNorthing );
450 #endif
451
453 OGRErr SetHOMAC( double dfCenterLat, double dfCenterLong,
454 double dfAzimuth, double dfRectToSkew,
455 double dfScale,
456 double dfFalseEasting, double dfFalseNorthing );
457
459 OGRErr SetIWMPolyconic( double dfLat1, double dfLat2,
460 double dfCenterLong,
461 double dfFalseEasting,
462 double dfFalseNorthing );
463
465 OGRErr SetKrovak( double dfCenterLat, double dfCenterLong,
466 double dfAzimuth, double dfPseudoStdParallelLat,
467 double dfScale,
468 double dfFalseEasting, double dfFalseNorthing );
469
471 OGRErr SetLAEA( double dfCenterLat, double dfCenterLong,
472 double dfFalseEasting, double dfFalseNorthing );
473
475 OGRErr SetLCC( double dfStdP1, double dfStdP2,
476 double dfCenterLat, double dfCenterLong,
477 double dfFalseEasting, double dfFalseNorthing );
478
480 OGRErr SetLCC1SP( double dfCenterLat, double dfCenterLong,
481 double dfScale,
482 double dfFalseEasting, double dfFalseNorthing );
483
485 OGRErr SetLCCB( double dfStdP1, double dfStdP2,
486 double dfCenterLat, double dfCenterLong,
487 double dfFalseEasting, double dfFalseNorthing );
488
490 OGRErr SetMC( double dfCenterLat, double dfCenterLong,
491 double dfFalseEasting, double dfFalseNorthing );
492
494 OGRErr SetMercator( double dfCenterLat, double dfCenterLong,
495 double dfScale,
496 double dfFalseEasting, double dfFalseNorthing );
497
499 OGRErr SetMercator2SP( double dfStdP1,
500 double dfCenterLat, double dfCenterLong,
501 double dfFalseEasting, double dfFalseNorthing );
502
504 OGRErr SetMollweide( double dfCentralMeridian,
505 double dfFalseEasting, double dfFalseNorthing );
506
508 OGRErr SetNZMG( double dfCenterLat, double dfCenterLong,
509 double dfFalseEasting, double dfFalseNorthing );
510
512 OGRErr SetOS( double dfOriginLat, double dfCMeridian,
513 double dfScale,
514 double dfFalseEasting,double dfFalseNorthing);
515
517 OGRErr SetOrthographic( double dfCenterLat, double dfCenterLong,
518 double dfFalseEasting,double dfFalseNorthing);
519
521 OGRErr SetPolyconic( double dfCenterLat, double dfCenterLong,
522 double dfFalseEasting, double dfFalseNorthing );
523
525 OGRErr SetPS( double dfCenterLat, double dfCenterLong,
526 double dfScale,
527 double dfFalseEasting, double dfFalseNorthing);
528
530 OGRErr SetRobinson( double dfCenterLong,
531 double dfFalseEasting, double dfFalseNorthing );
532
534 OGRErr SetSinusoidal( double dfCenterLong,
535 double dfFalseEasting, double dfFalseNorthing );
536
538 OGRErr SetStereographic( double dfCenterLat, double dfCenterLong,
539 double dfScale,
540 double dfFalseEasting,double dfFalseNorthing);
541
543 OGRErr SetSOC( double dfLatitudeOfOrigin, double dfCentralMeridian,
544 double dfFalseEasting, double dfFalseNorthing );
545
547 OGRErr SetTM( double dfCenterLat, double dfCenterLong,
548 double dfScale,
549 double dfFalseEasting, double dfFalseNorthing );
550
552 OGRErr SetTMVariant( const char *pszVariantName,
553 double dfCenterLat, double dfCenterLong,
554 double dfScale,
555 double dfFalseEasting, double dfFalseNorthing );
556
558 OGRErr SetTMG( double dfCenterLat, double dfCenterLong,
559 double dfFalseEasting, double dfFalseNorthing );
560
562 OGRErr SetTMSO( double dfCenterLat, double dfCenterLong,
563 double dfScale,
564 double dfFalseEasting, double dfFalseNorthing );
565
567 OGRErr SetTPED( double dfLat1, double dfLong1,
568 double dfLat2, double dfLong2,
569 double dfFalseEasting, double dfFalseNorthing );
570
572 OGRErr SetVDG( double dfCenterLong,
573 double dfFalseEasting, double dfFalseNorthing );
574
576 OGRErr SetUTM( int nZone, int bNorth = TRUE );
577 int GetUTMZone( int *pbNorth = nullptr ) const;
578
580 OGRErr SetWagner( int nVariation, double dfCenterLat,
581 double dfFalseEasting, double dfFalseNorthing );
582
584 OGRErr SetQSC(double dfCenterLat, double dfCenterLong);
585
587 OGRErr SetSCH( double dfPegLat, double dfPegLong,
588 double dfPegHeading, double dfPegHgt);
590 OGRErr SetStatePlane( int nZone, int bNAD83 = TRUE,
591 const char *pszOverrideUnitName = nullptr,
592 double dfOverrideUnit = 0.0 );
593
595 OGRErr ImportFromESRIStatePlaneWKT(
596 int nCode, const char* pszDatumName, const char* pszUnitsName,
597 int nPCSCode, const char* pszCSName = nullptr );
598
600 OGRErr ImportFromESRIWisconsinWKT(
601 const char* pszPrjName, double dfCentralMeridian, double dfLatOfOrigin,
602 const char* pszUnitsName, const char* pszCSName = nullptr );
603
604 static OGRSpatialReference* GetWGS84SRS();
605
609 static inline OGRSpatialReferenceH ToHandle(OGRSpatialReference* poSRS)
610 { return reinterpret_cast<OGRSpatialReferenceH>(poSRS); }
611
615 static inline OGRSpatialReference* FromHandle(OGRSpatialReferenceH hSRS)
616 { return reinterpret_cast<OGRSpatialReference*>(hSRS); }
617
618 };
619
620 /************************************************************************/
621 /* OGRCoordinateTransformation */
622 /* */
623 /* This is really just used as a base class for a private */
624 /* implementation. */
625 /************************************************************************/
626
636 class CPL_DLL OGRCoordinateTransformation
637 {
638 public:
639 virtual ~OGRCoordinateTransformation() {}
640
641 static void DestroyCT(OGRCoordinateTransformation* poCT);
642
643 // From CT_CoordinateTransformation
644
646 virtual OGRSpatialReference *GetSourceCS() = 0;
647
649 virtual OGRSpatialReference *GetTargetCS() = 0;
650
652 virtual bool GetEmitErrors() { return false; }
653
655 virtual void SetEmitErrors(bool /*bEmitErrors*/) {}
656
657 // From CT_MathTransform
658
674 virtual int Transform( int nCount,
675 double *x, double *y, double *z = nullptr ) = 0;
676
692 virtual int TransformEx( int nCount,
693 double *x, double *y, double *z = nullptr,
694 int *pabSuccess = nullptr ) = 0;
695
699 static inline OGRCoordinateTransformationH ToHandle(OGRCoordinateTransformation* poCT)
700 { return reinterpret_cast<OGRCoordinateTransformationH>(poCT); }
701
705 static inline OGRCoordinateTransformation* FromHandle(OGRCoordinateTransformationH hCT)
706 { return reinterpret_cast<OGRCoordinateTransformation*>(hCT); }
707 };
708
709 OGRCoordinateTransformation CPL_DLL *
710 OGRCreateCoordinateTransformation( OGRSpatialReference *poSource,
711 OGRSpatialReference *poTarget );
712
713 #endif /* ndef OGR_SPATIALREF_H_INCLUDED */
OGRCoordinateTransformation::ToHandle
static OGRCoordinateTransformationH ToHandle(OGRCoordinateTransformation *poCT)
Convert a OGRCoordinateTransformation* to a OGRCoordinateTransformationH.
Definition: ogr_spatialref.h:699
OGRCoordinateTransformation::SetEmitErrors
virtual void SetEmitErrors(bool)
Set if the transformer must emit CPLError.
Definition: ogr_spatialref.h:655
OGRCreateCoordinateTransformation
OGRCoordinateTransformation * OGRCreateCoordinateTransformation(OGRSpatialReference *poSource, OGRSpatialReference *poTarget)
Create transformation object.
Definition: ogrct.cpp:493
OGR_SRSNode
Objects of this class are used to represent value nodes in the parsed representation of the WKT SRS f...
Definition: ogr_spatialref.h:64
OGR_SRSNode::IsLeafNode
int IsLeafNode() const
Return whether this is a leaf node.
Definition: ogr_spatialref.h:83
OGR_SRSNode::GetValue
const char * GetValue() const
Fetch value string for this node.
Definition: ogr_spatialref.h:99
cpl_string.h
Various convenience functions for working with strings and string lists.
OGRCoordinateTransformationH
void * OGRCoordinateTransformationH
Opaque type for a coordinate transformation object.
Definition: ogr_api.h:76
USGS_ANGLE_PACKEDDMS
#define USGS_ANGLE_PACKEDDMS
Angle is in packed degree minute second.
Definition: ogr_spatialref.h:210
OGRSpatialReference::GetRoot
OGR_SRSNode * GetRoot()
Return root node.
Definition: ogr_spatialref.h:253
OGRSpatialReferenceH
void * OGRSpatialReferenceH
Opaque type for a spatial reference system.
Definition: ogr_api.h:74
ogr_srs_api.h
C spatial reference system services and defines.
OGRAxisOrientation
OGRAxisOrientation
Axis orientations (corresponds to CS_AxisOrientationEnum).
Definition: ogr_srs_api.h:48
OGRCoordinateTransformation::GetEmitErrors
virtual bool GetEmitErrors()
Whether the transformer will emit CPLError.
Definition: ogr_spatialref.h:652
OGRSpatialReference
This class represents an OpenGIS Spatial Reference System, and contains methods for converting betwee...
Definition: ogr_spatialref.h:139
OGRSpatialReference::ToHandle
static OGRSpatialReferenceH ToHandle(OGRSpatialReference *poSRS)
Convert a OGRSpatialReference* to a OGRSpatialReferenceH.
Definition: ogr_spatialref.h:609
OGRSpatialReference::FromHandle
static OGRSpatialReference * FromHandle(OGRSpatialReferenceH hSRS)
Convert a OGRSpatialReferenceH to a OGRSpatialReference*.
Definition: ogr_spatialref.h:615
OGRCoordinateTransformation::FromHandle
static OGRCoordinateTransformation * FromHandle(OGRCoordinateTransformationH hCT)
Convert a OGRCoordinateTransformationH to a OGRCoordinateTransformation*.
Definition: ogr_spatialref.h:705
OGRSpatialReference::GetReferenceCount
int GetReferenceCount() const
Fetch current reference count.
Definition: ogr_spatialref.h:182
OGRCoordinateTransformation
Interface for transforming between coordinate systems.
Definition: ogr_spatialref.h:636
OGRSpatialReference::GetRoot
const OGR_SRSNode * GetRoot() const
Return root node.
Definition: ogr_spatialref.h:255
OGRErr
int OGRErr
Simple container for a bounding region.
Definition: ogr_core.h:290
OGR_SRSNode::GetChildCount
int GetChildCount() const
Get number of children nodes.
Definition: ogr_spatialref.h:85

Generated for GDAL by 1.8.8.