OGR
ogr_core.h
Go to the documentation of this file.
1 /******************************************************************************
2  * $Id: ogr_core.h 37856 2017-03-28 12:10:47Z rouault $
3  *
4  * Project: OpenGIS Simple Features Reference Implementation
5  * Purpose: Define some core portability services for cross-platform OGR code.
6  * Author: Frank Warmerdam, warmerdam@pobox.com
7  *
8  ******************************************************************************
9  * Copyright (c) 1999, Frank Warmerdam
10  * Copyright (c) 2007-2014, Even Rouault <even dot rouault at mines-paris dot org>
11  *
12  * Permission is hereby granted, free of charge, to any person obtaining a
13  * copy of this software and associated documentation files (the "Software"),
14  * to deal in the Software without restriction, including without limitation
15  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16  * and/or sell copies of the Software, and to permit persons to whom the
17  * Software is furnished to do so, subject to the following conditions:
18  *
19  * The above copyright notice and this permission notice shall be included
20  * in all copies or substantial portions of the Software.
21  *
22  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
27  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
28  * DEALINGS IN THE SOFTWARE.
29  ****************************************************************************/
30 
31 #ifndef OGR_CORE_H_INCLUDED
32 #define OGR_CORE_H_INCLUDED
33 
34 #include "cpl_port.h"
35 #include "gdal_version.h"
36 
48 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP)
49 
50 extern "C++"
51 {
52 #include <limits>
53 
54 class CPL_DLL OGREnvelope
55 {
56  public:
57  OGREnvelope() : MinX(std::numeric_limits<double>::infinity()),
58  MaxX(-std::numeric_limits<double>::infinity()),
59  MinY(std::numeric_limits<double>::infinity()),
60  MaxY(-std::numeric_limits<double>::infinity())
61  {
62  }
63 
64  OGREnvelope(const OGREnvelope& oOther) :
65  MinX(oOther.MinX),MaxX(oOther.MaxX), MinY(oOther.MinY), MaxY(oOther.MaxY)
66  {
67  }
68 
69  double MinX;
70  double MaxX;
71  double MinY;
72  double MaxY;
73 
74 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
75 #pragma GCC diagnostic push
76 #pragma GCC diagnostic ignored "-Wfloat-equal"
77 #endif
78  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
79 
80 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
81 #pragma GCC diagnostic pop
82 #endif
83 
84  void Merge( OGREnvelope const& sOther ) {
85  MinX = MIN(MinX,sOther.MinX);
86  MaxX = MAX(MaxX,sOther.MaxX);
87  MinY = MIN(MinY,sOther.MinY);
88  MaxY = MAX(MaxY,sOther.MaxY);
89  }
90 
91  void Merge( double dfX, double dfY ) {
92  MinX = MIN(MinX,dfX);
93  MaxX = MAX(MaxX,dfX);
94  MinY = MIN(MinY,dfY);
95  MaxY = MAX(MaxY,dfY);
96  }
97 
98  void Intersect( OGREnvelope const& sOther ) {
99  if(Intersects(sOther))
100  {
101  if( IsInit() )
102  {
103  MinX = MAX(MinX,sOther.MinX);
104  MaxX = MIN(MaxX,sOther.MaxX);
105  MinY = MAX(MinY,sOther.MinY);
106  MaxY = MIN(MaxY,sOther.MaxY);
107  }
108  else
109  {
110  MinX = sOther.MinX;
111  MaxX = sOther.MaxX;
112  MinY = sOther.MinY;
113  MaxY = sOther.MaxY;
114  }
115  }
116  else
117  {
118  *this = OGREnvelope();
119  }
120  }
121 
122  int Intersects(OGREnvelope const& other) const
123  {
124  return MinX <= other.MaxX && MaxX >= other.MinX &&
125  MinY <= other.MaxY && MaxY >= other.MinY;
126  }
127 
128  int Contains(OGREnvelope const& other) const
129  {
130  return MinX <= other.MinX && MinY <= other.MinY &&
131  MaxX >= other.MaxX && MaxY >= other.MaxY;
132  }
133 };
134 
135 } // extern "C++"
136 
137 #else
138 typedef struct
139 {
140  double MinX;
141  double MaxX;
142  double MinY;
143  double MaxY;
144 } OGREnvelope;
145 #endif
146 
151 #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP)
152 
153 extern "C++" {
154 
155 class CPL_DLL OGREnvelope3D : public OGREnvelope
156 {
157  public:
158  OGREnvelope3D() : OGREnvelope(),
159  MinZ(std::numeric_limits<double>::infinity()),
160  MaxZ(-std::numeric_limits<double>::infinity())
161  {
162  }
163 
164  OGREnvelope3D(const OGREnvelope3D& oOther) :
165  OGREnvelope(oOther),
166  MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
167  {
168  }
169 
170  double MinZ;
171  double MaxZ;
172 
173 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
174 #pragma GCC diagnostic push
175 #pragma GCC diagnostic ignored "-Wfloat-equal"
176 #endif
177  int IsInit() const { return MinX != std::numeric_limits<double>::infinity(); }
178 #ifdef HAVE_GCC_DIAGNOSTIC_PUSH
179 #pragma GCC diagnostic pop
180 #endif
181 
182  void Merge( OGREnvelope3D const& sOther ) {
183  MinX = MIN(MinX,sOther.MinX);
184  MaxX = MAX(MaxX,sOther.MaxX);
185  MinY = MIN(MinY,sOther.MinY);
186  MaxY = MAX(MaxY,sOther.MaxY);
187  MinZ = MIN(MinZ,sOther.MinZ);
188  MaxZ = MAX(MaxZ,sOther.MaxZ);
189  }
190 
191  void Merge( double dfX, double dfY, double dfZ ) {
192  MinX = MIN(MinX,dfX);
193  MaxX = MAX(MaxX,dfX);
194  MinY = MIN(MinY,dfY);
195  MaxY = MAX(MaxY,dfY);
196  MinZ = MIN(MinZ,dfZ);
197  MaxZ = MAX(MaxZ,dfZ);
198  }
199 
200  void Intersect( OGREnvelope3D const& sOther ) {
201  if(Intersects(sOther))
202  {
203  if( IsInit() )
204  {
205  MinX = MAX(MinX,sOther.MinX);
206  MaxX = MIN(MaxX,sOther.MaxX);
207  MinY = MAX(MinY,sOther.MinY);
208  MaxY = MIN(MaxY,sOther.MaxY);
209  MinZ = MAX(MinZ,sOther.MinZ);
210  MaxZ = MIN(MaxZ,sOther.MaxZ);
211  }
212  else
213  {
214  MinX = sOther.MinX;
215  MaxX = sOther.MaxX;
216  MinY = sOther.MinY;
217  MaxY = sOther.MaxY;
218  MinZ = sOther.MinZ;
219  MaxZ = sOther.MaxZ;
220  }
221  }
222  else
223  {
224  *this = OGREnvelope3D();
225  }
226  }
227 
228  int Intersects(OGREnvelope3D const& other) const
229  {
230  return MinX <= other.MaxX && MaxX >= other.MinX &&
231  MinY <= other.MaxY && MaxY >= other.MinY &&
232  MinZ <= other.MaxZ && MaxZ >= other.MinZ;
233  }
234 
235  int Contains(OGREnvelope3D const& other) const
236  {
237  return MinX <= other.MinX && MinY <= other.MinY &&
238  MaxX >= other.MaxX && MaxY >= other.MaxY &&
239  MinZ <= other.MinZ && MaxZ >= other.MaxZ;
240  }
241 };
242 
243 } // extern "C++"
244 
245 #else
246 typedef struct
247 {
248  double MinX;
249  double MaxX;
250  double MinY;
251  double MaxY;
252  double MinZ;
253  double MaxZ;
254 } OGREnvelope3D;
255 #endif
256 
259 
261 void CPL_DLL *OGRMalloc( size_t ) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
262 void CPL_DLL *OGRCalloc( size_t, size_t ) CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
263 void CPL_DLL *OGRRealloc( void *, size_t ) CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
264 char CPL_DLL *OGRStrdup( const char * ) CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
265 void CPL_DLL OGRFree( void * ) CPL_WARN_DEPRECATED("Use CPLFree instead.");
268 #ifdef STRICT_OGRERR_TYPE
269 
270 typedef enum
271 {
272  OGRERR_NONE,
282 } OGRErr;
283 #else
284 
285 typedef int OGRErr;
286 
287 #define OGRERR_NONE 0
288 #define OGRERR_NOT_ENOUGH_DATA 1
289 #define OGRERR_NOT_ENOUGH_MEMORY 2
290 #define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
291 #define OGRERR_UNSUPPORTED_OPERATION 4
292 #define OGRERR_CORRUPT_DATA 5
293 #define OGRERR_FAILURE 6
294 #define OGRERR_UNSUPPORTED_SRS 7
295 #define OGRERR_INVALID_HANDLE 8
296 #define OGRERR_NON_EXISTING_FEATURE 9
298 #endif
299 
301 typedef int OGRBoolean;
302 
303 /* -------------------------------------------------------------------- */
304 /* ogr_geometry.h related definitions. */
305 /* -------------------------------------------------------------------- */
306 
312 typedef enum
313 {
316  wkbPoint = 1,
336  wkbCurve = 13,
337  wkbSurface = 14,
340  wkbTIN = 16,
342  wkbTriangle = 17,
344  wkbNone = 100,
350  wkbMultiCurveZ = 1011,
352  wkbCurveZ = 1013,
353  wkbSurfaceZ = 1014,
355  wkbTINZ = 1016,
356  wkbTriangleZ = 1017,
358  wkbPointM = 2001,
359  wkbLineStringM = 2002,
360  wkbPolygonM = 2003,
361  wkbMultiPointM = 2004,
368  wkbMultiCurveM = 2011,
370  wkbCurveM = 2013,
371  wkbSurfaceM = 2014,
373  wkbTINM = 2016,
374  wkbTriangleM = 2017,
376  wkbPointZM = 3001,
378  wkbPolygonZM = 3003,
388  wkbCurveZM = 3013,
389  wkbSurfaceZM = 3014,
391  wkbTINZM = 3016,
392  wkbTriangleZM = 3017,
394  wkbPoint25D = 0x80000001,
395  wkbLineString25D = 0x80000002,
396  wkbPolygon25D = 0x80000003,
397  wkbMultiPoint25D = 0x80000004,
398  wkbMultiLineString25D = 0x80000005,
399  wkbMultiPolygon25D = 0x80000006,
403 
418 typedef enum
419 {
423 } OGRwkbVariant;
424 
425 #ifndef GDAL_COMPILATION
426 
427 #define wkb25DBit 0x80000000
428 #endif
429 
431 #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
432 
436 #define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
437 
441 #define wkbSetZ(x) OGR_GT_SetZ(x)
442 
446 #define wkbHasM(x) (OGR_GT_HasM(x) != 0)
447 
451 #define wkbSetM(x) OGR_GT_SetM(x)
452 
453 #ifndef DOXYGEN_SKIP
454 #define ogrZMarker 0x21125711
455 #endif
456 
457 const char CPL_DLL * OGRGeometryTypeToName( OGRwkbGeometryType eType );
459  OGRwkbGeometryType eExtra );
461  OGRwkbGeometryType eExtra,
462  int bAllowPromotingToCurves );
466 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier( OGRwkbGeometryType eType, int bSetZ, int bSetM );
467 int CPL_DLL OGR_GT_HasZ( OGRwkbGeometryType eType );
468 int CPL_DLL OGR_GT_HasM( OGRwkbGeometryType eType );
469 int CPL_DLL OGR_GT_IsSubClassOf( OGRwkbGeometryType eType,
470  OGRwkbGeometryType eSuperType );
471 int CPL_DLL OGR_GT_IsCurve( OGRwkbGeometryType );
472 int CPL_DLL OGR_GT_IsSurface( OGRwkbGeometryType );
477 
479 typedef enum
480 {
481  wkbXDR = 0,
482  wkbNDR = 1
484 
485 #ifndef DOXYGEN_SKIP
486 
487 #ifndef NO_HACK_FOR_IBM_DB2_V72
488 # define HACK_FOR_IBM_DB2_V72
489 #endif
490 
491 #ifdef HACK_FOR_IBM_DB2_V72
492 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x))
493 # define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x)))
494 #else
495 # define DB2_V72_FIX_BYTE_ORDER(x) (x)
496 # define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
497 #endif
498 
499 #endif /* #ifndef DOXYGEN_SKIP */
500 
504 #define ALTER_NAME_FLAG 0x1
505 
509 #define ALTER_TYPE_FLAG 0x2
510 
514 #define ALTER_WIDTH_PRECISION_FLAG 0x4
515 
520 #define ALTER_NULLABLE_FLAG 0x8
521 
526 #define ALTER_DEFAULT_FLAG 0x10
527 
531 #define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG)
532 
537 #define OGR_F_VAL_NULL 0x00000001
538 
543 #define OGR_F_VAL_GEOM_TYPE 0x00000002
544 
549 #define OGR_F_VAL_WIDTH 0x00000004
550 
558 #define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
559 
566 #define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
567 
572 #define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
573 
574 /************************************************************************/
575 /* ogr_feature.h related definitions. */
576 /************************************************************************/
577 
584 typedef enum
600  OFTMaxType = 13
601 } OGRFieldType;
602 
612 typedef enum
613 { OFSTNone = 0,
621  OFSTMaxSubType = 3
623 
628 typedef enum
629 {
630  OJUndefined = 0,
631  OJLeft = 1,
632  OJRight = 2
634 
636 #define OGRNullFID -1
637 
643 #define OGRUnsetMarker -21121
644 
651 #define OGRNullMarker -21122
652 
653 /************************************************************************/
654 /* OGRField */
655 /************************************************************************/
656 
661 typedef union {
663  int Integer;
664  GIntBig Integer64;
665  double Real;
666  char *String;
667 
668  struct {
669  int nCount;
670  int *paList;
671  } IntegerList;
672 
673  struct {
674  int nCount;
675  GIntBig *paList;
676  } Integer64List;
677 
678  struct {
679  int nCount;
680  double *paList;
681  } RealList;
682 
683  struct {
684  int nCount;
685  char **paList;
686  } StringList;
687 
688  struct {
689  int nCount;
690  GByte *paData;
691  } Binary;
692 
693  struct {
694  int nMarker1;
695  int nMarker2;
696  int nMarker3;
697  } Set;
698 
699  struct {
700  GInt16 Year;
701  GByte Month;
702  GByte Day;
703  GByte Hour;
704  GByte Minute;
705  GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
706  100=GMT, 104=GMT+1, 80=GMT-5, etc */
707  GByte Reserved; /* must be set to 0 */
708  float Second; /* with millisecond accuracy. at the end of the structure, so as to keep it 12 bytes on 32 bit */
709  } Date;
711 } OGRField;
712 
714 #define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5)
715 
716 int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput,
717  int nOptions );
718 
719 /* -------------------------------------------------------------------- */
720 /* Constants from ogrsf_frmts.h for capabilities. */
721 /* -------------------------------------------------------------------- */
722 #define OLCRandomRead "RandomRead"
723 #define OLCSequentialWrite "SequentialWrite"
724 #define OLCRandomWrite "RandomWrite"
725 #define OLCFastSpatialFilter "FastSpatialFilter"
726 #define OLCFastFeatureCount "FastFeatureCount"
727 #define OLCFastGetExtent "FastGetExtent"
728 #define OLCCreateField "CreateField"
729 #define OLCDeleteField "DeleteField"
730 #define OLCReorderFields "ReorderFields"
731 #define OLCAlterFieldDefn "AlterFieldDefn"
732 #define OLCTransactions "Transactions"
733 #define OLCDeleteFeature "DeleteFeature"
734 #define OLCFastSetNextByIndex "FastSetNextByIndex"
735 #define OLCStringsAsUTF8 "StringsAsUTF8"
736 #define OLCIgnoreFields "IgnoreFields"
737 #define OLCCreateGeomField "CreateGeomField"
738 #define OLCCurveGeometries "CurveGeometries"
739 #define OLCMeasuredGeometries "MeasuredGeometries"
741 #define ODsCCreateLayer "CreateLayer"
742 #define ODsCDeleteLayer "DeleteLayer"
743 #define ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
744 #define ODsCCurveGeometries "CurveGeometries"
745 #define ODsCTransactions "Transactions"
746 #define ODsCEmulatedTransactions "EmulatedTransactions"
747 #define ODsCMeasuredGeometries "MeasuredGeometries"
748 #define ODsCRandomLayerRead "RandomLayerRead"
749 #define ODsCRandomLayerWrite "RandomLayerWrite "
751 #define ODrCCreateDataSource "CreateDataSource"
752 #define ODrCDeleteDataSource "DeleteDataSource"
754 /* -------------------------------------------------------------------- */
755 /* Layer metadata items. */
756 /* -------------------------------------------------------------------- */
761 #define OLMD_FID64 "OLMD_FID64"
762 
763 /************************************************************************/
764 /* ogr_featurestyle.h related definitions. */
765 /************************************************************************/
766 
772 {
774  OGRSTCPen = 1,
779 } OGRSTClassId;
780 
785 {
789  OGRSTUMM = 3,
790  OGRSTUCM = 4,
792 } OGRSTUnitId;
793 
798 {
807 #ifndef DOXYGEN_SKIP
808  OGRSTPenLast = 8
809 #endif
810 } OGRSTPenParam;
811 
816 {
825 #ifndef DOXYGEN_SKIP
826  OGRSTBrushLast = 8
827 #endif
828 
830 
835 {
848 #ifndef DOXYGEN_SKIP
849  OGRSTSymbolLast = 12
850 #endif
852 
857 {
879 #ifndef DOXYGEN_SKIP
880  OGRSTLabelLast = 21
881 #endif
883 
884 /* ------------------------------------------------------------------- */
885 /* Version checking */
886 /* -------------------------------------------------------------------- */
887 
888 #ifndef DOXYGEN_SKIP
889 
890 /* Note to developers : please keep this section in sync with gdal.h */
891 
892 #ifndef GDAL_VERSION_INFO_DEFINED
893 #define GDAL_VERSION_INFO_DEFINED
894 const char CPL_DLL * CPL_STDCALL GDALVersionInfo( const char * );
895 #endif
896 
897 #ifndef GDAL_CHECK_VERSION
898 
910 int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor,
911  const char* pszCallingComponentName);
912 
914 #define GDAL_CHECK_VERSION(pszCallingComponentName) \
915  GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, pszCallingComponentName)
916 
917 #endif
918 
919 #endif /* #ifndef DOXYGEN_SKIP */
920 
921 CPL_C_END
922 
923 #endif /* ndef OGR_CORE_H_INCLUDED */
OGRSTSymbolStep
@ OGRSTSymbolStep
Definition: ogr_core.h:842
MAX
#define MAX(a, b)
Definition: cpl_port.h:460
OGRSTLabelStretch
@ OGRSTLabelStretch
Definition: ogr_core.h:874
OGR_DS_Destroy
void OGR_DS_Destroy(OGRDataSourceH)
Closes opened datasource and releases allocated resources.
Definition: ogrdatasource.cpp:58
wkbTINM
@ wkbTINM
Definition: ogr_core.h:373
wkbSurfaceM
@ wkbSurfaceM
Definition: ogr_core.h:371
wkbPointZM
@ wkbPointZM
Definition: ogr_core.h:376
OGR_F_SetFieldString
void OGR_F_SetFieldString(OGRFeatureH, int, const char *)
Set field to string value.
Definition: ogrfeature.cpp:3915
OGR_Fld_GetType
OGRFieldType OGR_Fld_GetType(OGRFieldDefnH)
Fetch type of this field.
Definition: ogrfielddefn.cpp:251
wkbCurvePolygonZM
@ wkbCurvePolygonZM
Definition: ogr_core.h:385
OGRSTBrushSize
@ OGRSTBrushSize
Definition: ogr_core.h:821
GByte
unsigned char GByte
Definition: cpl_port.h:207
OGRSTLabelStrikeout
@ OGRSTLabelStrikeout
Definition: ogr_core.h:873
OFSTFloat32
@ OFSTFloat32
Definition: ogr_core.h:620
OGR_F_DumpReadable
void OGR_F_DumpReadable(OGRFeatureH, FILE *)
Dump this feature in a human readable form.
Definition: ogrfeature.cpp:5149
OGR_DS_GetLayerCount
int OGR_DS_GetLayerCount(OGRDataSourceH)
Get the number of layers in this data source.
Definition: ogrdatasource.cpp:267
OFTWideString
@ OFTWideString
Definition: ogr_core.h:592
OGRSTUInches
@ OGRSTUInches
Definition: ogr_core.h:791
OGRERR_UNSUPPORTED_GEOMETRY_TYPE
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Definition: ogr_core.h:290
GInt16
short GInt16
Definition: cpl_port.h:203
OGR_GT_GetCollection
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6514
OGR_L_CreateFeature
OGRErr OGR_L_CreateFeature(OGRLayerH, OGRFeatureH) CPL_WARN_UNUSED_RESULT
Create and write a new feature within a layer.
Definition: ogrlayer.cpp:644
wkbMultiCurveZM
@ wkbMultiCurveZM
Definition: ogr_core.h:386
OGRSTLabelPerp
@ OGRSTLabelPerp
Definition: ogr_core.h:868
OGRSTUCM
@ OGRSTUCM
Definition: ogr_core.h:790
OFSTInt16
@ OFSTInt16
Definition: ogr_core.h:618
OGR_G_AddPoint
void OGR_G_AddPoint(OGRGeometryH, double, double, double)
Add a point to a geometry (line string or point).
Definition: ogr_api.cpp:1122
wkbMultiLineStringZM
@ wkbMultiLineStringZM
Definition: ogr_core.h:380
OFTBinary
@ OFTBinary
Definition: ogr_core.h:594
OGRSTSymbolPriority
@ OGRSTSymbolPriority
Definition: ogr_core.h:845
wkbPoint
@ wkbPoint
Definition: ogr_core.h:316
OGRSTLabelBColor
@ OGRSTLabelBColor
Definition: ogr_core.h:863
OFSTBoolean
@ OFSTBoolean
Definition: ogr_core.h:616
OGRSTLabelFColor
@ OGRSTLabelFColor
Definition: ogr_core.h:862
wkbCurvePolygonZ
@ wkbCurvePolygonZ
Definition: ogr_core.h:349
wkbMultiSurfaceZM
@ wkbMultiSurfaceZM
Definition: ogr_core.h:387
wkbTriangleZ
@ wkbTriangleZ
Definition: ogr_core.h:356
OGR_L_GetLayerDefn
OGRFeatureDefnH OGR_L_GetLayerDefn(OGRLayerH)
Fetch the schema information for this layer.
Definition: ogrlayer.cpp:989
OGR_GT_IsSubClassOf
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition: ogrgeometry.cpp:6450
wkbCompoundCurveZM
@ wkbCompoundCurveZM
Definition: ogr_core.h:384
wkbMultiSurfaceM
@ wkbMultiSurfaceM
Definition: ogr_core.h:369
wkbMultiPolygon
@ wkbMultiPolygon
Definition: ogr_core.h:324
OGR_GT_Flatten
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6302
wkbMultiPoint25D
@ wkbMultiPoint25D
Definition: ogr_core.h:397
OGRRegisterAll
void OGRRegisterAll(void)
Register all drivers.
Definition: ogrregisterall.cpp:38
wkbNDR
@ wkbNDR
Definition: ogr_core.h:482
ogr_style_tool_param_label_id
ogr_style_tool_param_label_id
Definition: ogr_core.h:856
OGRSTClassId
enum ogr_style_tool_class_id OGRSTClassId
OGRSTBrushParam
enum ogr_style_tool_param_brush_id OGRSTBrushParam
wkbVariantOldOgc
@ wkbVariantOldOgc
Definition: ogr_core.h:420
OGR_GT_IsNonLinear
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition: ogrgeometry.cpp:6704
wkbCompoundCurve
@ wkbCompoundCurve
Definition: ogr_core.h:330
OGRSTLabelItalic
@ OGRSTLabelItalic
Definition: ogr_core.h:870
OGR_GT_GetLinear
OGRwkbGeometryType OGR_GT_GetLinear(OGRwkbGeometryType eType)
Returns the non-curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6619
OGRMergeGeometryTypes
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition: ogrgeometry.cpp:2614
wkbPolygon25D
@ wkbPolygon25D
Definition: ogr_core.h:396
OGRSTPenWidth
@ OGRSTPenWidth
Definition: ogr_core.h:800
OFTWideStringList
@ OFTWideStringList
Definition: ogr_core.h:593
wkbPolygonZM
@ wkbPolygonZM
Definition: ogr_core.h:378
OGRSTLabelParam
enum ogr_style_tool_param_label_id OGRSTLabelParam
OGR_GT_SetModifier
OGRwkbGeometryType OGR_GT_SetModifier(OGRwkbGeometryType eType, int bSetZ, int bSetM)
Returns a XY, XYZ, XYM or XYZM geometry type depending on parameter.
Definition: ogrgeometry.cpp:6423
wkbVariantPostGIS1
@ wkbVariantPostGIS1
Definition: ogr_core.h:422
OFTDateTime
@ OFTDateTime
Definition: ogr_core.h:597
wkbPolygonM
@ wkbPolygonM
Definition: ogr_core.h:360
wkbTriangleM
@ wkbTriangleM
Definition: ogr_core.h:374
OGRSFDriverH
void * OGRSFDriverH
Definition: ogr_api.h:501
OGRSTLabelAdjHor
@ OGRSTLabelAdjHor
Definition: ogr_core.h:875
wkbCircularString
@ wkbCircularString
Definition: ogr_core.h:328
OGRSTLabelTextString
@ OGRSTLabelTextString
Definition: ogr_core.h:860
OGR_F_SetGeometryDirectly
OGRErr OGR_F_SetGeometryDirectly(OGRFeatureH, OGRGeometryH)
Set feature geometry.
Definition: ogrfeature.cpp:388
OGROpen
OGRDataSourceH OGROpen(const char *, int, OGRSFDriverH *) CPL_WARN_UNUSED_RESULT
Open a file / data source with one of the registered drivers.
OGRSTPenParam
enum ogr_style_tool_param_pen_id OGRSTPenParam
wkbMultiPolygonZM
@ wkbMultiPolygonZM
Definition: ogr_core.h:381
ogr_style_tool_param_symbol_id
ogr_style_tool_param_symbol_id
Definition: ogr_core.h:834
wkbCurveM
@ wkbCurveM
Definition: ogr_core.h:370
MIN
#define MIN(a, b)
Definition: cpl_port.h:458
OGRSTLabelPlacement
@ OGRSTLabelPlacement
Definition: ogr_core.h:864
OGRSTCSymbol
@ OGRSTCSymbol
Definition: ogr_core.h:776
OGRSTCLabel
@ OGRSTCLabel
Definition: ogr_core.h:777
wkbPolyhedralSurfaceZM
@ wkbPolyhedralSurfaceZM
Definition: ogr_core.h:390
wkbPoint25D
@ wkbPoint25D
Definition: ogr_core.h:394
wkbSurfaceZM
@ wkbSurfaceZM
Definition: ogr_core.h:389
wkbCircularStringZM
@ wkbCircularStringZM
Definition: ogr_core.h:383
OGRFeatureH
void * OGRFeatureH
Definition: ogr_api.h:291
EQUAL
#define EQUAL(a, b)
Definition: cpl_port.h:622
OGRSTUnitId
enum ogr_style_tool_units_id OGRSTUnitId
wkbCircularStringZ
@ wkbCircularStringZ
Definition: ogr_core.h:347
OGRBoolean
int OGRBoolean
Definition: ogr_core.h:301
wkbCurve
@ wkbCurve
Definition: ogr_core.h:336
OGRFeatureDefnH
void * OGRFeatureDefnH
Definition: ogr_api.h:289
OGRSTCNone
@ OGRSTCNone
Definition: ogr_core.h:773
wkbMultiPointZM
@ wkbMultiPointZM
Definition: ogr_core.h:379
OGRSTUPixel
@ OGRSTUPixel
Definition: ogr_core.h:787
OGRSTPenPriority
@ OGRSTPenPriority
Definition: ogr_core.h:806
OGRMergeGeometryTypesEx
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition: ogrgeometry.cpp:2651
OGR_G_SetPoint
void OGR_G_SetPoint(OGRGeometryH, int iPoint, double, double, double)
Set the location of a vertex in a point or linestring geometry.
Definition: ogr_api.cpp:871
wkbTINZM
@ wkbTINZM
Definition: ogr_core.h:391
OGR_GT_IsSurface
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition: ogrgeometry.cpp:6682
OGRSTSymbolDx
@ OGRSTSymbolDx
Definition: ogr_core.h:840
wkbLineStringZM
@ wkbLineStringZM
Definition: ogr_core.h:377
CPL_C_START
#define CPL_C_START
Definition: cpl_port.h:352
OGR_GT_SetM
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6396
OGRERR_UNSUPPORTED_SRS
#define OGRERR_UNSUPPORTED_SRS
Definition: ogr_core.h:294
OGR_F_SetFieldDouble
void OGR_F_SetFieldDouble(OGRFeatureH, int, double)
Set field to double value.
Definition: ogrfeature.cpp:3604
ogr_style_tool_class_id
ogr_style_tool_class_id
Definition: ogr_core.h:771
OGRSTLabelOColor
@ OGRSTLabelOColor
Definition: ogr_core.h:878
OGRwkbByteOrder
OGRwkbByteOrder
Definition: ogr_core.h:479
OGRField
Definition: ogr_core.h:661
OGRSTSymbolAngle
@ OGRSTSymbolAngle
Definition: ogr_core.h:837
OGRSTSymbolFontName
@ OGRSTSymbolFontName
Definition: ogr_core.h:846
OGRERR_UNSUPPORTED_OPERATION
#define OGRERR_UNSUPPORTED_OPERATION
Definition: ogr_core.h:291
wkbCurvePolygon
@ wkbCurvePolygon
Definition: ogr_core.h:331
wkbLineStringM
@ wkbLineStringM
Definition: ogr_core.h:359
OGRSTPenColor
@ OGRSTPenColor
Definition: ogr_core.h:799
OGRSTLabelDy
@ OGRSTLabelDy
Definition: ogr_core.h:867
OGRERR_FAILURE
#define OGRERR_FAILURE
Definition: ogr_core.h:293
OGRSTUMM
@ OGRSTUMM
Definition: ogr_core.h:789
OGR_GT_GetCurve
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition: ogrgeometry.cpp:6570
OFTString
@ OFTString
Definition: ogr_core.h:590
wkbMultiPolygon25D
@ wkbMultiPolygon25D
Definition: ogr_core.h:399
wkbCircularStringM
@ wkbCircularStringM
Definition: ogr_core.h:365
OFTIntegerList
@ OFTIntegerList
Definition: ogr_core.h:587
wkbMultiSurface
@ wkbMultiSurface
Definition: ogr_core.h:335
OGR_FD_GetFieldCount
int OGR_FD_GetFieldCount(OGRFeatureDefnH)
Fetch number of fields on the passed feature definition.
Definition: ogrfeaturedefn.cpp:288
OGRSTCBrush
@ OGRSTCBrush
Definition: ogr_core.h:775
OGRERR_NOT_ENOUGH_MEMORY
#define OGRERR_NOT_ENOUGH_MEMORY
Definition: ogr_core.h:289
OGRSTLabelFontName
@ OGRSTLabelFontName
Definition: ogr_core.h:858
OGRSTLabelPriority
@ OGRSTLabelPriority
Definition: ogr_core.h:872
wkbPolyhedralSurface
@ wkbPolyhedralSurface
Definition: ogr_core.h:338
wkbCurvePolygonM
@ wkbCurvePolygonM
Definition: ogr_core.h:367
CPL_C_END
#define CPL_C_END
Definition: cpl_port.h:354
wkbMultiPointM
@ wkbMultiPointM
Definition: ogr_core.h:361
OGRSTLabelUnderline
@ OGRSTLabelUnderline
Definition: ogr_core.h:871
wkbGeometryCollectionM
@ wkbGeometryCollectionM
Definition: ogr_core.h:364
OGR_Fld_GetNameRef
const char * OGR_Fld_GetNameRef(OGRFieldDefnH)
Fetch name of this field.
Definition: ogrfielddefn.cpp:213
OGRSTCVector
@ OGRSTCVector
Definition: ogr_core.h:778
OGRDataSourceH
void * OGRDataSourceH
Definition: ogr_api.h:499
OGRSTLabelAnchor
@ OGRSTLabelAnchor
Definition: ogr_core.h:865
OFTInteger
@ OFTInteger
Definition: ogr_core.h:586
wkbVariantIso
@ wkbVariantIso
Definition: ogr_core.h:421
OGR_L_GetNextFeature
OGRFeatureH OGR_L_GetNextFeature(OGRLayerH) CPL_WARN_UNUSED_RESULT
Fetch the next available feature from this layer.
Definition: ogrlayer.cpp:539
OGRSTLabelAngle
@ OGRSTLabelAngle
Definition: ogr_core.h:861
OGR_GT_IsCurve
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition: ogrgeometry.cpp:6661
OGRSTSymbolDy
@ OGRSTSymbolDy
Definition: ogr_core.h:841
OGRSTBrushDx
@ OGRSTBrushDx
Definition: ogr_core.h:822
wkbNone
@ wkbNone
Definition: ogr_core.h:344
OGR_GetFieldTypeName
const char * OGR_GetFieldTypeName(OGRFieldType)
Fetch human readable name for a field type.
Definition: ogrfielddefn.cpp:683
OFTInteger64List
@ OFTInteger64List
Definition: ogr_core.h:599
wkbPolygon
@ wkbPolygon
Definition: ogr_core.h:319
wkbMultiCurveM
@ wkbMultiCurveM
Definition: ogr_core.h:368
wkbMultiLineString25D
@ wkbMultiLineString25D
Definition: ogr_core.h:398
OGRJustification
OGRJustification
Definition: ogr_core.h:628
wkbCompoundCurveM
@ wkbCompoundCurveM
Definition: ogr_core.h:366
wkbPolyhedralSurfaceM
@ wkbPolyhedralSurfaceM
Definition: ogr_core.h:372
OGRSTSymbolParam
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
OGR_DS_GetLayer
OGRLayerH OGR_DS_GetLayer(OGRDataSourceH, int)
Fetch a layer by index.
Definition: ogrdatasource.cpp:284
OFSTNone
@ OFSTNone
Definition: ogr_core.h:614
OFTStringList
@ OFTStringList
Definition: ogr_core.h:591
OGRSTBrushFColor
@ OGRSTBrushFColor
Definition: ogr_core.h:817
OGR_G_AddGeometryDirectly
OGRErr OGR_G_AddGeometryDirectly(OGRGeometryH, OGRGeometryH)
Add a geometry directly to an existing geometry container.
Definition: ogr_api.cpp:1512
wkbSurface
@ wkbSurface
Definition: ogr_core.h:337
OGRFieldDefnH
void * OGRFieldDefnH
Definition: ogr_api.h:287
OGRSTBrushDy
@ OGRSTBrushDy
Definition: ogr_core.h:823
OGRGeometryH
void * OGRGeometryH
Definition: ogr_api.h:56
wkbLinearRing
@ wkbLinearRing
Definition: ogr_core.h:345
OGRERR_NOT_ENOUGH_DATA
#define OGRERR_NOT_ENOUGH_DATA
Definition: ogr_core.h:288
OGRSTSymbolId
@ OGRSTSymbolId
Definition: ogr_core.h:836
OGRERR_CORRUPT_DATA
#define OGRERR_CORRUPT_DATA
Definition: ogr_core.h:292
OGRSTBrushBColor
@ OGRSTBrushBColor
Definition: ogr_core.h:818
OGR_F_SetFieldInteger
void OGR_F_SetFieldInteger(OGRFeatureH, int, int)
Set field to integer value.
Definition: ogrfeature.cpp:3299
OFTTime
@ OFTTime
Definition: ogr_core.h:596
OGRGetDriverCount
int OGRGetDriverCount(void)
Fetch the number of registered drivers.
OGR_F_Destroy
void OGR_F_Destroy(OGRFeatureH)
Destroy feature.
Definition: ogrfeature.cpp:218
OGRSTUGround
@ OGRSTUGround
Definition: ogr_core.h:786
OGRSTSymbolSize
@ OGRSTSymbolSize
Definition: ogr_core.h:839
OGRSTLabelHColor
@ OGRSTLabelHColor
Definition: ogr_core.h:877
OGRErr
int OGRErr
Definition: ogr_core.h:285
wkbCompoundCurveZ
@ wkbCompoundCurveZ
Definition: ogr_core.h:348
OGRSTSymbolOffset
@ OGRSTSymbolOffset
Definition: ogr_core.h:844
ogr_style_tool_param_pen_id
ogr_style_tool_param_pen_id
Definition: ogr_core.h:797
GIntBig
long long GIntBig
Definition: cpl_port.h:250
OGRSTBrushId
@ OGRSTBrushId
Definition: ogr_core.h:819
ogr_style_tool_param_brush_id
ogr_style_tool_param_brush_id
Definition: ogr_core.h:815
wkbCurveZ
@ wkbCurveZ
Definition: ogr_core.h:352
OGR_GT_HasZ
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition: ogrgeometry.cpp:6327
OGRwkbGeometryType
OGRwkbGeometryType
Definition: ogr_core.h:312
OGRSTPenCap
@ OGRSTPenCap
Definition: ogr_core.h:804
OGR_GT_HasM
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition: ogrgeometry.cpp:6351
wkbTINZ
@ wkbTINZ
Definition: ogr_core.h:355
OGRSTCPen
@ OGRSTCPen
Definition: ogr_core.h:774
OGRGeometryTypeToName
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value. The returned value should n...
Definition: ogrgeometry.cpp:2391
OFTDate
@ OFTDate
Definition: ogr_core.h:595
cpl_port.h
OGRSTPenPerOffset
@ OGRSTPenPerOffset
Definition: ogr_core.h:803
OGRFieldSubType
OGRFieldSubType
Definition: ogr_core.h:612
ogr_api.h
wkbTriangleZM
@ wkbTriangleZM
Definition: ogr_core.h:392
wkbXDR
@ wkbXDR
Definition: ogr_core.h:481
OGRSTBrushPriority
@ OGRSTBrushPriority
Definition: ogr_core.h:824
OFTRealList
@ OFTRealList
Definition: ogr_core.h:589
wkbGeometryCollection25D
@ wkbGeometryCollection25D
Definition: ogr_core.h:400
ogr_style_tool_units_id
ogr_style_tool_units_id
Definition: ogr_core.h:784
wkbGeometryCollection
@ wkbGeometryCollection
Definition: ogr_core.h:325
OGRFieldType
OGRFieldType
Definition: ogr_core.h:584
OGR_G_CreateGeometry
OGRGeometryH OGR_G_CreateGeometry(OGRwkbGeometryType) CPL_WARN_UNUSED_RESULT
Create an empty geometry of desired type.
Definition: ogrgeometryfactory.cpp:519
wkbMultiCurveZ
@ wkbMultiCurveZ
Definition: ogr_core.h:350
OGRSTPenJoin
@ OGRSTPenJoin
Definition: ogr_core.h:805
OGR_FD_GetFieldDefn
OGRFieldDefnH OGR_FD_GetFieldDefn(OGRFeatureDefnH, int)
Fetch field definition of the passed feature definition.
Definition: ogrfeaturedefn.cpp:350
wkbPolyhedralSurfaceZ
@ wkbPolyhedralSurfaceZ
Definition: ogr_core.h:354
wkbMultiCurve
@ wkbMultiCurve
Definition: ogr_core.h:334
OGRSTSymbolColor
@ OGRSTSymbolColor
Definition: ogr_core.h:838
wkbMultiPolygonM
@ wkbMultiPolygonM
Definition: ogr_core.h:363
wkbLineString25D
@ wkbLineString25D
Definition: ogr_core.h:395
OFTInteger64
@ OFTInteger64
Definition: ogr_core.h:598
wkbGeometryCollectionZM
@ wkbGeometryCollectionZM
Definition: ogr_core.h:382
OGRSTUPoints
@ OGRSTUPoints
Definition: ogr_core.h:788
OGRERR_NONE
#define OGRERR_NONE
Definition: ogr_core.h:287
wkbMultiSurfaceZ
@ wkbMultiSurfaceZ
Definition: ogr_core.h:351
OGRSTLabelAdjVert
@ OGRSTLabelAdjVert
Definition: ogr_core.h:876
OGRSTSymbolOColor
@ OGRSTSymbolOColor
Definition: ogr_core.h:847
OGRSTLabelDx
@ OGRSTLabelDx
Definition: ogr_core.h:866
wkbTriangle
@ wkbTriangle
Definition: ogr_core.h:342
wkbLineString
@ wkbLineString
Definition: ogr_core.h:317
OGRSTPenId
@ OGRSTPenId
Definition: ogr_core.h:802
OGR_FD_GetName
const char * OGR_FD_GetName(OGRFeatureDefnH)
Get name of the OGRFeatureDefn passed as an argument.
Definition: ogrfeaturedefn.cpp:251
wkbMultiLineString
@ wkbMultiLineString
Definition: ogr_core.h:323
wkbCurveZM
@ wkbCurveZM
Definition: ogr_core.h:388
OFTReal
@ OFTReal
Definition: ogr_core.h:588
OGRSTSymbolPerp
@ OGRSTSymbolPerp
Definition: ogr_core.h:843
OGR_Dr_GetName
const char * OGR_Dr_GetName(OGRSFDriverH)
Fetch name of driver (file format). This name should be relatively short (10-40 characters),...
OGRSTBrushAngle
@ OGRSTBrushAngle
Definition: ogr_core.h:820
OGRGetDriver
OGRSFDriverH OGRGetDriver(int)
Fetch the indicated driver.
OGRERR_NON_EXISTING_FEATURE
#define OGRERR_NON_EXISTING_FEATURE
Definition: ogr_core.h:296
OGRLayerH
void * OGRLayerH
Definition: ogr_api.h:497
OGRSTPenPattern
@ OGRSTPenPattern
Definition: ogr_core.h:801
wkbMultiLineStringM
@ wkbMultiLineStringM
Definition: ogr_core.h:362
OGRERR_INVALID_HANDLE
#define OGRERR_INVALID_HANDLE
Definition: ogr_core.h:295
OGR_GT_SetZ
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition: ogrgeometry.cpp:6373
wkbUnknown
@ wkbUnknown
Definition: ogr_core.h:314
wkbTIN
@ wkbTIN
Definition: ogr_core.h:340
OGRSTLabelSize
@ OGRSTLabelSize
Definition: ogr_core.h:859
OGRSTLabelBold
@ OGRSTLabelBold
Definition: ogr_core.h:869
OGR_Dr_CreateDataSource
OGRDataSourceH OGR_Dr_CreateDataSource(OGRSFDriverH, const char *, char **) CPL_WARN_UNUSED_RESULT
This function attempts to create a new data source based on the passed driver.
OGRwkbVariant
OGRwkbVariant
Definition: ogr_core.h:418
OGR_Fld_Create
OGRFieldDefnH OGR_Fld_Create(const char *, OGRFieldType) CPL_WARN_UNUSED_RESULT
Create a new field definition.
Definition: ogrfielddefn.cpp:113
wkbPointM
@ wkbPointM
Definition: ogr_core.h:358
wkbMultiPoint
@ wkbMultiPoint
Definition: ogr_core.h:322
wkbSurfaceZ
@ wkbSurfaceZ
Definition: ogr_core.h:353
OGR_L_CreateField
OGRErr OGR_L_CreateField(OGRLayerH, OGRFieldDefnH, int)
Create a new field on a layer.
Definition: ogrlayer.cpp:678
OGR_F_Create
OGRFeatureH OGR_F_Create(OGRFeatureDefnH) CPL_WARN_UNUSED_RESULT
Feature factory.
Definition: ogrfeature.cpp:127

Generated for GDAL by doxygen 1.8.17.