GDAL

Classes | Macros | Typedefs | Enumerations | Functions
ogr_core.h File Reference

Core portability services for cross-platform OGR code. More...

`#include "cpl_port.h"`
`#include "gdal_version.h"`

Go to the source code of this file.

## Classes
class | OGREnvelope
| Simple container for a bounding region (rectangle) More...
class | OGREnvelope3D
| Simple container for a bounding region in 3D. More...
union | OGRField
| OGRFeature field attribute value union. More...
struct | OGRCodedValue
| Associates a code and a value. More...

## Macros
#define | OGRERR_NONE 0
| Success.
#define | OGRERR_NOT_ENOUGH_DATA 1
| Not enough data to deserialize.
#define | OGRERR_NOT_ENOUGH_MEMORY 2
| Not enough memory.
#define | OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
| Unsupported geometry type.
#define | OGRERR_UNSUPPORTED_OPERATION 4
| Unsupported operation.
#define | OGRERR_CORRUPT_DATA 5
| Corrupt data.
#define | OGRERR_FAILURE 6
| Failure.
#define | OGRERR_UNSUPPORTED_SRS 7
| Unsupported SRS.
#define | OGRERR_INVALID_HANDLE 8
| Invalid handle.
#define | OGRERR_NON_EXISTING_FEATURE 9
| Non existing feature. More...
#define | wkb25DBit 0x80000000
#define | wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
| Return the 2D geometry type corresponding to the specified geometry type.
#define | wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
| Return if the geometry type is a 3D geometry type. More...
#define | wkbSetZ(x) OGR_GT_SetZ(x)
| Return the 3D geometry type corresponding to the specified geometry type. More...
#define | wkbHasM(x) (OGR_GT_HasM(x) != 0)
| Return if the geometry type is a measured geometry type. More...
#define | wkbSetM(x) OGR_GT_SetM(x)
| Return the measured geometry type corresponding to the specified geometry type. More...
#define | ALTER_NAME_FLAG 0x1
| Alter field name. More...
#define | ALTER_TYPE_FLAG 0x2
| Alter field type. More...
#define | ALTER_WIDTH_PRECISION_FLAG 0x4
| Alter field width and precision. More...
#define | ALTER_NULLABLE_FLAG 0x8
| Alter field NOT NULL constraint. More...
#define | ALTER_DEFAULT_FLAG 0x10
| Alter field DEFAULT value. More...
#define | ALTER_UNIQUE_FLAG 0x20
| Alter field UNIQUE constraint. More...
#define | ALTER_DOMAIN_FLAG 0x40
| Alter field domain name. More...
#define | ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | ALTER_DOMAIN_FLAG)
| Alter all parameters of field definition. More...
#define | OGR_F_VAL_NULL 0x00000001
| Validate that fields respect not-null constraints. More...
#define | OGR_F_VAL_GEOM_TYPE 0x00000002
| Validate that geometries respect geometry column type. More...
#define | OGR_F_VAL_WIDTH 0x00000004
| Validate that (string) fields respect field width. More...
#define | OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
| Allow fields that are null when there's an associated default value. More...
#define | OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
| Allow geometry fields to have a different coordinate dimension that their geometry column type. More...
#define | OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
| Enable all validation tests (except OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM) Used by OGR_F_Validate(). More...
#define | OGRNullFID -1
| Special value for a unset FID.
#define | OGRUnsetMarker -21121
| Special value set in OGRField.Set.nMarker1, nMarker2 and nMarker3 for a unset field. More...
#define | OGRNullMarker -21122
| Special value set in OGRField.Set.nMarker1, nMarker2 and nMarker3 for a null field. More...
#define | OLCRandomRead "RandomRead"
| Layer capability for random read.
#define | OLCSequentialWrite "SequentialWrite"
| Layer capability for sequential write.
#define | OLCRandomWrite "RandomWrite"
| Layer capability for random write.
#define | OLCFastSpatialFilter "FastSpatialFilter"
| Layer capability for fast spatial filter.
#define | OLCFastFeatureCount "FastFeatureCount"
| Layer capability for fast feature count retrieval.
#define | OLCFastGetExtent "FastGetExtent"
| Layer capability for fast extent retrieval.
#define | OLCCreateField "CreateField"
| Layer capability for field creation.
#define | OLCDeleteField "DeleteField"
| Layer capability for field deletion.
#define | OLCReorderFields "ReorderFields"
| Layer capability for field reordering.
#define | OLCAlterFieldDefn "AlterFieldDefn"
| Layer capability for field alteration.
#define | OLCTransactions "Transactions"
| Layer capability for transactions.
#define | OLCDeleteFeature "DeleteFeature"
| Layer capability for feature deletion.
#define | OLCFastSetNextByIndex "FastSetNextByIndex"
| Layer capability for setting next feature index.
#define | OLCStringsAsUTF8 "StringsAsUTF8"
| Layer capability for strings returned with UTF-8 encoding.
#define | OLCIgnoreFields "IgnoreFields"
| Layer capability for field ignoring.
#define | OLCCreateGeomField "CreateGeomField"
| Layer capability for geometry field creation.
#define | OLCCurveGeometries "CurveGeometries"
| Layer capability for curve geometries support.
#define | OLCMeasuredGeometries "MeasuredGeometries"
| Layer capability for measured geometries support.
#define | ODsCCreateLayer "CreateLayer"
| Dataset capability for layer creation.
#define | ODsCDeleteLayer "DeleteLayer"
| Dataset capability for layer deletion.
#define | ODsCCreateGeomFieldAfterCreateLayer "CreateGeomFieldAfterCreateLayer"
| Dataset capability for geometry field creation support.
#define | ODsCCurveGeometries "CurveGeometries"
| Dataset capability for curve geometries support.
#define | ODsCTransactions "Transactions"
| Dataset capability for dataset transcations.
#define | ODsCEmulatedTransactions "EmulatedTransactions"
| Dataset capability for emulated dataset transactions.
#define | ODsCMeasuredGeometries "MeasuredGeometries"
| Dataset capability for measured geometries support.
#define | ODsCRandomLayerRead "RandomLayerRead"
| Dataset capability for GetNextFeature() returning features from random layers.
#define | ODsCRandomLayerWrite "RandomLayerWrite "
| Dataset capability for supporting CreateFeature on layer in random order.
#define | ODsCAddFieldDomain "AddFieldDomain"
| Dataset capability for supporting AddFieldDomain() (at least partially)
#define | ODrCCreateDataSource "CreateDataSource"
| Driver capability for datasource creation.
#define | ODrCDeleteDataSource "DeleteDataSource"
| Driver capability for datasource deletion.
#define | OLMD_FID64 "OLMD_FID64"
| Capability set to YES as metadata on a layer that has features with 64 bit identifiers. More...

## Typedefs
typedef int | OGRErr
| Type for a OGR error.
typedef int | OGRBoolean
| Type for a OGR boolean.
typedef enum ogr_style_tool_class_id | OGRSTClassId
| OGRStyleTool derived class types (returned by GetType()).
typedef enum ogr_style_tool_units_id | OGRSTUnitId
| List of units supported by OGRStyleTools.
typedef enum ogr_style_tool_param_pen_id | OGRSTPenParam
| List of parameters for use with OGRStylePen.
typedef enum ogr_style_tool_param_brush_id | OGRSTBrushParam
| List of parameters for use with OGRStyleBrush.
typedef enum ogr_style_tool_param_symbol_id | OGRSTSymbolParam
| List of parameters for use with OGRStyleSymbol.
typedef enum ogr_style_tool_param_label_id | OGRSTLabelParam
| List of parameters for use with OGRStyleLabel.

## Enumerations
enum | OGRwkbGeometryType { wkbUnknown = 0 , wkbPoint = 1 , wkbLineString = 2 , wkbPolygon = 3 , wkbMultiPoint = 4 , wkbMultiLineString = 5 , wkbMultiPolygon = 6 , wkbGeometryCollection = 7 , wkbCircularString = 8 , wkbCompoundCurve = 9 , wkbCurvePolygon = 10 , wkbMultiCurve = 11 , wkbMultiSurface = 12 , wkbCurve = 13 , wkbSurface = 14 , wkbPolyhedralSurface = 15 , wkbTIN = 16 , wkbTriangle = 17 , wkbNone = 100 , wkbLinearRing = 101 , wkbCircularStringZ = 1008 , wkbCompoundCurveZ = 1009 , wkbCurvePolygonZ = 1010 , wkbMultiCurveZ = 1011 , wkbMultiSurfaceZ = 1012 , wkbCurveZ = 1013 , wkbSurfaceZ = 1014 , wkbPolyhedralSurfaceZ = 1015 , wkbTINZ = 1016 , wkbTriangleZ = 1017 , wkbPointM = 2001 , wkbLineStringM = 2002 , wkbPolygonM = 2003 , wkbMultiPointM = 2004 , wkbMultiLineStringM = 2005 , wkbMultiPolygonM = 2006 , wkbGeometryCollectionM = 2007 , wkbCircularStringM = 2008 , wkbCompoundCurveM = 2009 , wkbCurvePolygonM = 2010 , wkbMultiCurveM = 2011 , wkbMultiSurfaceM = 2012 , wkbCurveM = 2013 , wkbSurfaceM = 2014 , wkbPolyhedralSurfaceM = 2015 , wkbTINM = 2016 , wkbTriangleM = 2017 , wkbPointZM = 3001 , wkbLineStringZM = 3002 , wkbPolygonZM = 3003 , wkbMultiPointZM = 3004 , wkbMultiLineStringZM = 3005 , wkbMultiPolygonZM = 3006 , wkbGeometryCollectionZM = 3007 , wkbCircularStringZM = 3008 , wkbCompoundCurveZM = 3009 , wkbCurvePolygonZM = 3010 , wkbMultiCurveZM = 3011 , wkbMultiSurfaceZM = 3012 , wkbCurveZM = 3013 , wkbSurfaceZM = 3014 , wkbPolyhedralSurfaceZM = 3015 , wkbTINZM = 3016 , wkbTriangleZM = 3017 , wkbPoint25D = -2147483647 , wkbLineString25D = -2147483646 , wkbPolygon25D = -2147483645 , wkbMultiPoint25D = -2147483644 , wkbMultiLineString25D = -2147483643 , wkbMultiPolygon25D = -2147483642 , wkbGeometryCollection25D = -2147483641 }
| List of well known binary geometry types. More...
enum | OGRwkbVariant { wkbVariantOldOgc , wkbVariantIso , wkbVariantPostGIS1 }
| Output variants of WKB we support. More...
enum | OGRwkbByteOrder { wkbXDR = 0 , wkbNDR = 1 }
| Enumeration to describe byte order. More...
enum | OGRFieldType { OFTInteger = 0 , OFTIntegerList = 1 , OFTReal = 2 , OFTRealList = 3 , OFTString = 4 , OFTStringList = 5 , OFTWideString = 6 , OFTWideStringList = 7 , OFTBinary = 8 , OFTDate = 9 , OFTTime = 10 , OFTDateTime = 11 , OFTInteger64 = 12 , OFTInteger64List = 13 , OFTMaxType = 13 }
| List of feature field types. More...
enum | OGRFieldSubType { OFSTNone = 0 , OFSTBoolean = 1 , OFSTInt16 = 2 , OFSTFloat32 = 3 , OFSTJSON = 4 , OFSTUUID = 5 , OFSTMaxSubType = 5 }
| List of field subtypes. More...
enum | OGRJustification { OJUndefined = 0 , OJLeft = 1 , OJRight = 2 }
| Display justification for field values.
enum | ogr_style_tool_class_id { OGRSTCNone = 0 , OGRSTCPen = 1 , OGRSTCBrush = 2 , OGRSTCSymbol = 3 , OGRSTCLabel = 4 , OGRSTCVector = 5 }
| OGRStyleTool derived class types (returned by GetType()). More...
enum | ogr_style_tool_units_id { OGRSTUGround = 0 , OGRSTUPixel = 1 , OGRSTUPoints = 2 , OGRSTUMM = 3 , OGRSTUCM = 4 , OGRSTUInches = 5 }
| List of units supported by OGRStyleTools. More...
enum | ogr_style_tool_param_pen_id { OGRSTPenColor = 0 , OGRSTPenWidth = 1 , OGRSTPenPattern = 2 , OGRSTPenId = 3 , OGRSTPenPerOffset = 4 , OGRSTPenCap = 5 , OGRSTPenJoin = 6 , OGRSTPenPriority = 7 }
| List of parameters for use with OGRStylePen. More...
enum | ogr_style_tool_param_brush_id { OGRSTBrushFColor = 0 , OGRSTBrushBColor = 1 , OGRSTBrushId = 2 , OGRSTBrushAngle = 3 , OGRSTBrushSize = 4 , OGRSTBrushDx = 5 , OGRSTBrushDy = 6 , OGRSTBrushPriority = 7 }
| List of parameters for use with OGRStyleBrush. More...
enum | ogr_style_tool_param_symbol_id { OGRSTSymbolId = 0 , OGRSTSymbolAngle = 1 , OGRSTSymbolColor = 2 , OGRSTSymbolSize = 3 , OGRSTSymbolDx = 4 , OGRSTSymbolDy = 5 , OGRSTSymbolStep = 6 , OGRSTSymbolPerp = 7 , OGRSTSymbolOffset = 8 , OGRSTSymbolPriority = 9 , OGRSTSymbolFontName = 10 , OGRSTSymbolOColor = 11 }
| List of parameters for use with OGRStyleSymbol. More...
enum | ogr_style_tool_param_label_id { OGRSTLabelFontName = 0 , OGRSTLabelSize = 1 , OGRSTLabelTextString = 2 , OGRSTLabelAngle = 3 , OGRSTLabelFColor = 4 , OGRSTLabelBColor = 5 , OGRSTLabelPlacement = 6 , OGRSTLabelAnchor = 7 , OGRSTLabelDx = 8 , OGRSTLabelDy = 9 , OGRSTLabelPerp = 10 , OGRSTLabelBold = 11 , OGRSTLabelItalic = 12 , OGRSTLabelUnderline = 13 , OGRSTLabelPriority = 14 , OGRSTLabelStrikeout = 15 , OGRSTLabelStretch = 16 , OGRSTLabelAdjHor = 17 , OGRSTLabelAdjVert = 18 , OGRSTLabelHColor = 19 , OGRSTLabelOColor = 20 }
| List of parameters for use with OGRStyleLabel. More...
enum | OGRFieldDomainType { OFDT_CODED , OFDT_RANGE , OFDT_GLOB }
| Type of field domain. More...
enum | OGRFieldDomainSplitPolicy { OFDSP_DEFAULT_VALUE , OFDSP_DUPLICATE , OFDSP_GEOMETRY_RATIO }
| Split policy for field domains. More...
enum | OGRFieldDomainMergePolicy { OFDMP_DEFAULT_VALUE , OFDMP_SUM , OFDMP_GEOMETRY_WEIGHTED }
| Merge policy for field domains. More...

## Functions
const char * | OGRGeometryTypeToName (OGRwkbGeometryType eType)
| Fetch a human readable name corresponding to an OGRwkbGeometryType value. More...
OGRwkbGeometryType | OGRMergeGeometryTypes (OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
| Find common geometry type. More...
OGRwkbGeometryType | OGRMergeGeometryTypesEx (OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
| Find common geometry type. More...
OGRwkbGeometryType | OGR_GT_Flatten (OGRwkbGeometryType eType)
| Returns the 2D geometry type corresponding to the passed geometry type. More...
OGRwkbGeometryType | OGR_GT_SetZ (OGRwkbGeometryType eType)
| Returns the 3D geometry type corresponding to the passed geometry type. More...
OGRwkbGeometryType | OGR_GT_SetM (OGRwkbGeometryType eType)
| Returns the measured geometry type corresponding to the passed geometry type. More...
OGRwkbGeometryType | OGR_GT_SetModifier (OGRwkbGeometryType eType, int bSetZ, int bSetM)
| Returns a XY, XYZ, XYM or XYZM geometry type depending on parameter. More...
int | OGR_GT_HasZ (OGRwkbGeometryType eType)
| Return if the geometry type is a 3D geometry type. More...
int | OGR_GT_HasM (OGRwkbGeometryType eType)
| Return if the geometry type is a measured type. More...
int | OGR_GT_IsSubClassOf (OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
| Returns if a type is a subclass of another one. More...
int | OGR_GT_IsCurve (OGRwkbGeometryType)
| Return if a geometry type is an instance of Curve. More...
int | OGR_GT_IsSurface (OGRwkbGeometryType)
| Return if a geometry type is an instance of Surface. More...
int | OGR_GT_IsNonLinear (OGRwkbGeometryType)
| Return if a geometry type is a non-linear geometry type. More...
OGRwkbGeometryType | OGR_GT_GetCollection (OGRwkbGeometryType eType)
| Returns the collection type that can contain the passed geometry type. More...
OGRwkbGeometryType | OGR_GT_GetCurve (OGRwkbGeometryType eType)
| Returns the curve geometry type that can contain the passed geometry type. More...
OGRwkbGeometryType | OGR_GT_GetLinear (OGRwkbGeometryType eType)
| Returns the non-curve geometry type that can contain the passed geometry type. More...
int | OGR_GET_MS (float fSec)
| Return the number of milliseconds from a datetime with decimal seconds.
int | OGRParseDate (const char *pszInput, OGRField *psOutput, int nOptions)
| Parse date string. More...

## Detailed Description

Core portability services for cross-platform OGR code.

## Macro Definition Documentation

## ◆ ALTER_ALL_FLAG

#define ALTER_ALL_FLAG (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | ALTER_DOMAIN_FLAG)

Alter all parameters of field definition.

Used by OGR_L_AlterFieldDefn().

## ◆ ALTER_DEFAULT_FLAG

#define ALTER_DEFAULT_FLAG 0x10

Alter field DEFAULT value.

Used by OGR_L_AlterFieldDefn().

Since
  GDAL 2.0

## ◆ ALTER_DOMAIN_FLAG

#define ALTER_DOMAIN_FLAG 0x40

Alter field domain name.

Used by OGR_L_AlterFieldDefn().

Since
  GDAL 3.3

## ◆ ALTER_NAME_FLAG

#define ALTER_NAME_FLAG 0x1

Alter field name.

Used by OGR_L_AlterFieldDefn().

## ◆ ALTER_NULLABLE_FLAG

#define ALTER_NULLABLE_FLAG 0x8

Alter field NOT NULL constraint.

Used by OGR_L_AlterFieldDefn().

Since
  GDAL 2.0

## ◆ ALTER_TYPE_FLAG

#define ALTER_TYPE_FLAG 0x2

Alter field type.

Used by OGR_L_AlterFieldDefn().

## ◆ ALTER_UNIQUE_FLAG

#define ALTER_UNIQUE_FLAG 0x20

Alter field UNIQUE constraint.

Used by OGR_L_AlterFieldDefn().

Since
  GDAL 3.2

## ◆ ALTER_WIDTH_PRECISION_FLAG

#define ALTER_WIDTH_PRECISION_FLAG 0x4

Alter field width and precision.

Used by OGR_L_AlterFieldDefn().

## ◆ OGR_F_VAL_ALL

#define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)

Enable all validation tests (except OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM) Used by OGR_F_Validate().

Since
  GDAL 2.0

## ◆ OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM

#define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010

Allow geometry fields to have a different coordinate dimension that their geometry column type.

This flag only makes sense if OGR_F_VAL_GEOM_TYPE is set too. Used by OGR_F_Validate().

Since
  GDAL 2.1

## ◆ OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT

#define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008

Allow fields that are null when there's an associated default value.

This can be used for drivers where the low-level layers will automatically set the field value to the associated default value. This flag only makes sense if OGR_F_VAL_NULL is set too. Used by OGR_F_Validate().

Since
  GDAL 2.0

## ◆ OGR_F_VAL_GEOM_TYPE

#define OGR_F_VAL_GEOM_TYPE 0x00000002

Validate that geometries respect geometry column type.

Used by OGR_F_Validate().

Since
  GDAL 2.0

## ◆ OGR_F_VAL_NULL

#define OGR_F_VAL_NULL 0x00000001

Validate that fields respect not-null constraints.

Used by OGR_F_Validate().

Since
  GDAL 2.0

## ◆ OGR_F_VAL_WIDTH

#define OGR_F_VAL_WIDTH 0x00000004

Validate that (string) fields respect field width.

Used by OGR_F_Validate().

Since
  GDAL 2.0

## ◆ OGRERR_NON_EXISTING_FEATURE

#define OGRERR_NON_EXISTING_FEATURE 9

Non existing feature.

Added in GDAL 2.0

## ◆ OGRNullMarker

#define OGRNullMarker -21122

Special value set in OGRField.Set.nMarker1, nMarker2 and nMarker3 for a null field.

Direct use of this value is strongly discouraged. Use OGR_RawField_SetNull() or OGR_RawField_IsNull() instead.

Since
  GDAL 2.2

## ◆ OGRUnsetMarker

#define OGRUnsetMarker -21121

Special value set in OGRField.Set.nMarker1, nMarker2 and nMarker3 for a unset field.

Direct use of this value is strongly discouraged. Use OGR_RawField_SetUnset() or OGR_RawField_IsUnset() instead.

## ◆ OLMD_FID64

#define OLMD_FID64 "OLMD_FID64"

Capability set to YES as metadata on a layer that has features with 64 bit identifiers.

Since
  GDAL 2.0

## ◆ wkb25DBit

#define wkb25DBit 0x80000000

Deprecated:
  in GDAL 2.0.

Use wkbHasZ() or wkbSetZ() instead

## ◆ wkbHasM

#define wkbHasM | ( |  | x | ) | (OGR_GT_HasM(x) != 0)

Return if the geometry type is a measured geometry type.

Since
  GDAL 2.1

## ◆ wkbHasZ

#define wkbHasZ | ( |  | x | ) | (OGR_GT_HasZ(x) != 0)

Return if the geometry type is a 3D geometry type.

Since
  GDAL 2.0

## ◆ wkbSetM

#define wkbSetM | ( |  | x | ) | OGR_GT_SetM(x)

Return the measured geometry type corresponding to the specified geometry type.

Since
  GDAL 2.1

## ◆ wkbSetZ

#define wkbSetZ | ( |  | x | ) | OGR_GT_SetZ(x)

Return the 3D geometry type corresponding to the specified geometry type.

Since
  GDAL 2.0

## Enumeration Type Documentation

## ◆ ogr_style_tool_class_id

enum ogr_style_tool_class_id

OGRStyleTool derived class types (returned by GetType()).

Enumerator
OGRSTCNone | None.
OGRSTCPen | Pen.
OGRSTCBrush | Brush.
OGRSTCSymbol | Symbol.
OGRSTCLabel | Label.
OGRSTCVector | Vector.

## ◆ ogr_style_tool_param_brush_id

enum ogr_style_tool_param_brush_id

List of parameters for use with OGRStyleBrush.

Enumerator
OGRSTBrushFColor | Foreground color.
OGRSTBrushBColor | Background color.
OGRSTBrushId | Id.
OGRSTBrushAngle | Angle.
OGRSTBrushSize | Size.
OGRSTBrushDx | Dx.
OGRSTBrushDy | Dy.
OGRSTBrushPriority | Priority.

## ◆ ogr_style_tool_param_label_id

enum ogr_style_tool_param_label_id

List of parameters for use with OGRStyleLabel.

Enumerator
OGRSTLabelFontName | Font name.
OGRSTLabelSize | Size.
OGRSTLabelTextString | Text string.
OGRSTLabelAngle | Angle.
OGRSTLabelFColor | Foreground color.
OGRSTLabelBColor | Background color.
OGRSTLabelPlacement | Placement.
OGRSTLabelAnchor | Anchor.
OGRSTLabelDx | Dx.
OGRSTLabelDy | Dy.
OGRSTLabelPerp | Perpendicular.
OGRSTLabelBold | Bold.
OGRSTLabelItalic | Italic.
OGRSTLabelUnderline | Underline.
OGRSTLabelPriority | Priority.
OGRSTLabelStrikeout | Strike out.
OGRSTLabelStretch | Stretch.
OGRSTLabelAdjHor | OBSOLETE; do not use.
OGRSTLabelAdjVert | OBSOLETE; do not use.
OGRSTLabelHColor | Highlight color.
OGRSTLabelOColor | Outline color.

## ◆ ogr_style_tool_param_pen_id

enum ogr_style_tool_param_pen_id

List of parameters for use with OGRStylePen.

Enumerator
OGRSTPenColor | Color.
OGRSTPenWidth | Width.
OGRSTPenPattern | Pattern.
OGRSTPenId | Id.
OGRSTPenPerOffset | Perpendicular offset.
OGRSTPenCap | Cap.
OGRSTPenJoin | Join.
OGRSTPenPriority | Priority.

## ◆ ogr_style_tool_param_symbol_id

enum ogr_style_tool_param_symbol_id

List of parameters for use with OGRStyleSymbol.

Enumerator
OGRSTSymbolId | Id.
OGRSTSymbolAngle | Angle.
OGRSTSymbolColor | Color.
OGRSTSymbolSize | Size.
OGRSTSymbolDx | Dx.
OGRSTSymbolDy | Dy.
OGRSTSymbolStep | Step.
OGRSTSymbolPerp | Perpendicular.
OGRSTSymbolOffset | Offset.
OGRSTSymbolPriority | Priority.
OGRSTSymbolFontName | Font name.
OGRSTSymbolOColor | Outline color.

## ◆ ogr_style_tool_units_id

enum ogr_style_tool_units_id

List of units supported by OGRStyleTools.

Enumerator
OGRSTUGround | Ground unit.
OGRSTUPixel | Pixel.
OGRSTUPoints | Points.
OGRSTUMM | Millimeter.
OGRSTUCM | Centimeter.
OGRSTUInches | Inch.

## ◆ OGRFieldDomainMergePolicy

enum OGRFieldDomainMergePolicy

Merge policy for field domains.

When a feature is built by merging two features, defines how the value of attributes following the domain are computed.

Since
  GDAL 3.3

Enumerator
OFDMP_DEFAULT_VALUE | Default value.
OFDMP_SUM | Sum.
OFDMP_GEOMETRY_WEIGHTED | New values are computed as the weighted average of the source values.

## ◆ OGRFieldDomainSplitPolicy

enum OGRFieldDomainSplitPolicy

Split policy for field domains.

When a feature is split in two, defines how the value of attributes following the domain are computed.

Since
  GDAL 3.3

Enumerator
OFDSP_DEFAULT_VALUE | Default value.
OFDSP_DUPLICATE | Duplicate.
OFDSP_GEOMETRY_RATIO | New values are computed by the ratio of their area/length compared to the area/length of the original feature.

## ◆ OGRFieldDomainType

enum OGRFieldDomainType

Type of field domain.

Since
  GDAL 3.3

Enumerator
OFDT_CODED | Coded.
OFDT_RANGE | Range (min/max)
OFDT_GLOB | Glob (used by GeoPackage)

## ◆ OGRFieldSubType

enum OGRFieldSubType

List of field subtypes.

A subtype represents a hint, a restriction of the main type, that is not strictly necessary to consult. This list is likely to be extended in the future ... avoid coding applications based on the assumption that all field types can be known. Most subtypes only make sense for a restricted set of main types.

Since
  GDAL 2.0

Enumerator
OFSTNone | No subtype. This is the default value
OFSTBoolean | Boolean integer. Only valid for OFTInteger and OFTIntegerList.
OFSTInt16 | Signed 16-bit integer. Only valid for OFTInteger and OFTIntegerList.
OFSTFloat32 | Single precision (32 bit) floating point. Only valid for OFTReal and OFTRealList.
OFSTJSON | JSON content. Only valid for OFTString. Since GDAL 2.4
OFSTUUID | UUID string representation. Only valid for OFTString. Since GDAL 3.3

## ◆ OGRFieldType

enum OGRFieldType

List of feature field types.

This list is likely to be extended in the future ... avoid coding applications based on the assumption that all field types can be known.

Enumerator
OFTInteger | Simple 32bit integer.
OFTIntegerList | List of 32bit integers.
OFTReal | Double Precision floating point.
OFTRealList | List of doubles.
OFTString | String of ASCII chars.
OFTStringList | Array of strings.
OFTWideString | deprecated
OFTWideStringList | deprecated
OFTBinary | Raw Binary data.
OFTDate | Date.
OFTTime | Time.
OFTDateTime | Date and Time.
OFTInteger64 | Single 64bit integer.
OFTInteger64List | List of 64bit integers.

## ◆ OGRwkbByteOrder

enum OGRwkbByteOrder

Enumeration to describe byte order.

Enumerator
wkbXDR | MSB/Sun/Motorola: Most Significant Byte First
wkbNDR | LSB/Intel/Vax: Least Significant Byte First

## ◆ OGRwkbGeometryType

enum OGRwkbGeometryType

List of well known binary geometry types.

These are used within the BLOBs but are also returned from OGRGeometry::getGeometryType() to identify the type of a geometry object.

Enumerator
wkbUnknown | unknown type, non-standard
wkbPoint | 0-dimensional geometric object, standard WKB
wkbLineString | 1-dimensional geometric object with linear interpolation between Points, standard WKB
wkbPolygon | planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundaries, standard WKB
wkbMultiPoint | GeometryCollection of Points, standard WKB.
wkbMultiLineString | GeometryCollection of LineStrings, standard WKB.
wkbMultiPolygon | GeometryCollection of Polygons, standard WKB.
wkbGeometryCollection | geometric object that is a collection of 1 or more geometric objects, standard WKB
wkbCircularString | one or more circular arc segments connected end to end, ISO SQL/MM Part 3. GDAL >= 2.0
wkbCompoundCurve | sequence of contiguous curves, ISO SQL/MM Part 3. GDAL >= 2.0
wkbCurvePolygon | planar surface, defined by 1 exterior boundary and zero or more interior boundaries, that are curves. ISO SQL/MM Part 3. GDAL >= 2.0
wkbMultiCurve | GeometryCollection of Curves, ISO SQL/MM Part 3. GDAL >= 2.0
wkbMultiSurface | GeometryCollection of Surfaces, ISO SQL/MM Part 3. GDAL >= 2.0
wkbCurve | Curve (abstract type). ISO SQL/MM Part 3. GDAL >= 2.1
wkbSurface | Surface (abstract type). ISO SQL/MM Part 3. GDAL >= 2.1
wkbPolyhedralSurface | a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTIN | a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTriangle | a Triangle. ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbNone | non-standard, for pure attribute records
wkbLinearRing | non-standard, just for createGeometry()
wkbCircularStringZ | wkbCircularString with Z component. ISO SQL/MM Part 3. GDAL >= 2.0
wkbCompoundCurveZ | wkbCompoundCurve with Z component. ISO SQL/MM Part 3. GDAL >= 2.0
wkbCurvePolygonZ | wkbCurvePolygon with Z component. ISO SQL/MM Part 3. GDAL >= 2.0
wkbMultiCurveZ | wkbMultiCurve with Z component. ISO SQL/MM Part 3. GDAL >= 2.0
wkbMultiSurfaceZ | wkbMultiSurface with Z component. ISO SQL/MM Part 3. GDAL >= 2.0
wkbCurveZ | wkbCurve with Z component. ISO SQL/MM Part 3. GDAL >= 2.1
wkbSurfaceZ | wkbSurface with Z component. ISO SQL/MM Part 3. GDAL >= 2.1
wkbPolyhedralSurfaceZ | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTINZ | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTriangleZ | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbPointM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbLineStringM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbPolygonM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiPointM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiLineStringM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiPolygonM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbGeometryCollectionM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCircularStringM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCompoundCurveM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCurvePolygonM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiCurveM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiSurfaceM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCurveM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbSurfaceM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbPolyhedralSurfaceM | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTINM | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTriangleM | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbPointZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbLineStringZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbPolygonZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiPointZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiLineStringZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiPolygonZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbGeometryCollectionZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCircularStringZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCompoundCurveZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCurvePolygonZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiCurveZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbMultiSurfaceZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbCurveZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbSurfaceZM | ISO SQL/MM Part 3. GDAL >= 2.1
wkbPolyhedralSurfaceZM | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTINZM | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbTriangleZM | ISO SQL/MM Part 3. Reserved in GDAL >= 2.1 but not yet implemented
wkbPoint25D | 2.5D extension as per 99-402
wkbLineString25D | 2.5D extension as per 99-402
wkbPolygon25D | 2.5D extension as per 99-402
wkbMultiPoint25D | 2.5D extension as per 99-402
wkbMultiLineString25D | 2.5D extension as per 99-402
wkbMultiPolygon25D | 2.5D extension as per 99-402
wkbGeometryCollection25D | 2.5D extension as per 99-402

## ◆ OGRwkbVariant

enum OGRwkbVariant

Output variants of WKB we support.

99-402 was a short-lived extension to SFSQL 1.1 that used a high-bit flag to indicate the presence of Z coordinates in a WKB geometry.

SQL/MM Part 3 and SFSQL 1.2 use offsets of 1000 (Z), 2000 (M) and 3000 (ZM) to indicate the present of higher dimensional coordinates in a WKB geometry. Reference: 09-009_Committee_Draft_ISOIEC_CD_13249-3_SQLMM_Spatial.pdf, ISO/IEC JTC 1/SC 32 N 1820, ISO/IEC CD 13249-3:201x(E), Date: 2009-01-16. The codes are also found in §8.2.3 of OGC 06-103r4 "OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture", v1.2.1

Enumerator
wkbVariantOldOgc | Old-style 99-402 extended dimension (Z) WKB types.
wkbVariantIso | SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
wkbVariantPostGIS1 | PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.

## Function Documentation

## ◆ OGR_GT_Flatten()

OGRwkbGeometryType OGR_GT_Flatten | ( | OGRwkbGeometryType | eType | ) |

Returns the 2D geometry type corresponding to the passed geometry type.

This function is intended to work with geometry types as old-style 99-402 extended dimension (Z) WKB types, as well as with newer SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.

Parameters

  eType | Input geometry type

Returns
  2D geometry type corresponding to the passed geometry type.

Since
  GDAL 2.0

## ◆ OGR_GT_GetCollection()

OGRwkbGeometryType OGR_GT_GetCollection | ( | OGRwkbGeometryType | eType | ) |

Returns the collection type that can contain the passed geometry type.

Handled conversions are : wkbNone->wkbNone, wkbPoint -> wkbMultiPoint, wkbLineString->wkbMultiLineString, wkbPolygon/wkbTriangle/wkbPolyhedralSurface/wkbTIN->wkbMultiPolygon, wkbCircularString->wkbMultiCurve, wkbCompoundCurve->wkbMultiCurve, wkbCurvePolygon->wkbMultiSurface. In other cases, wkbUnknown is returned

Passed Z, M, ZM flag is preserved.

Parameters

  eType | Input geometry type

Returns
  the collection type that can contain the passed geometry type or wkbUnknown

Since
  GDAL 2.0

## ◆ OGR_GT_GetCurve()

OGRwkbGeometryType OGR_GT_GetCurve | ( | OGRwkbGeometryType | eType | ) |

Returns the curve geometry type that can contain the passed geometry type.

Handled conversions are : wkbPolygon -> wkbCurvePolygon, wkbLineString->wkbCompoundCurve, wkbMultiPolygon->wkbMultiSurface and wkbMultiLineString->wkbMultiCurve. In other cases, the passed geometry is returned.

Passed Z, M, ZM flag is preserved.

Parameters

  eType | Input geometry type

Returns
  the curve type that can contain the passed geometry type

Since
  GDAL 2.0

## ◆ OGR_GT_GetLinear()

OGRwkbGeometryType OGR_GT_GetLinear | ( | OGRwkbGeometryType | eType | ) |

Returns the non-curve geometry type that can contain the passed geometry type.

Handled conversions are : wkbCurvePolygon -> wkbPolygon, wkbCircularString->wkbLineString, wkbCompoundCurve->wkbLineString, wkbMultiSurface->wkbMultiPolygon and wkbMultiCurve->wkbMultiLineString. In other cases, the passed geometry is returned.

Passed Z, M, ZM flag is preserved.

Parameters

  eType | Input geometry type

Returns
  the non-curve type that can contain the passed geometry type

Since
  GDAL 2.0

## ◆ OGR_GT_HasM()

int OGR_GT_HasM | ( | OGRwkbGeometryType | eType | ) |

Return if the geometry type is a measured type.

Parameters

  eType | Input geometry type

Returns
  TRUE if the geometry type is a measured type.

Since
  GDAL 2.1

## ◆ OGR_GT_HasZ()

int OGR_GT_HasZ | ( | OGRwkbGeometryType | eType | ) |

Return if the geometry type is a 3D geometry type.

Parameters

  eType | Input geometry type

Returns
  TRUE if the geometry type is a 3D geometry type.

Since
  GDAL 2.0

## ◆ OGR_GT_IsCurve()

int OGR_GT_IsCurve | ( | OGRwkbGeometryType | eGeomType | ) |

Return if a geometry type is an instance of Curve.

Such geometry type are wkbLineString, wkbCircularString, wkbCompoundCurve and their Z/M/ZM variant.

Parameters

  eGeomType | the geometry type

Returns
  TRUE if the geometry type is an instance of Curve

Since
  GDAL 2.0

## ◆ OGR_GT_IsNonLinear()

int OGR_GT_IsNonLinear | ( | OGRwkbGeometryType | eGeomType | ) |

Return if a geometry type is a non-linear geometry type.

Such geometry type are wkbCurve, wkbCircularString, wkbCompoundCurve, wkbSurface, wkbCurvePolygon, wkbMultiCurve, wkbMultiSurface and their Z/M variants.

Parameters

  eGeomType | the geometry type

Returns
  TRUE if the geometry type is a non-linear geometry type.

Since
  GDAL 2.0

## ◆ OGR_GT_IsSubClassOf()

int OGR_GT_IsSubClassOf | ( | OGRwkbGeometryType | eType,
|  | OGRwkbGeometryType | eSuperType
| ) |  |

Returns if a type is a subclass of another one.

Parameters

  eType | Type.
  eSuperType | Super type

Returns
  TRUE if eType is a subclass of eSuperType.

Since
  GDAL 2.0

## ◆ OGR_GT_IsSurface()

int OGR_GT_IsSurface | ( | OGRwkbGeometryType | eGeomType | ) |

Return if a geometry type is an instance of Surface.

Such geometry type are wkbCurvePolygon and wkbPolygon and their Z/M/ZM variant.

Parameters

  eGeomType | the geometry type

Returns
  TRUE if the geometry type is an instance of Surface

Since
  GDAL 2.0

## ◆ OGR_GT_SetM()

OGRwkbGeometryType OGR_GT_SetM | ( | OGRwkbGeometryType | eType | ) |

Returns the measured geometry type corresponding to the passed geometry type.

Parameters

  eType | Input geometry type

Returns
  measured geometry type corresponding to the passed geometry type.

Since
  GDAL 2.1

## ◆ OGR_GT_SetModifier()

OGRwkbGeometryType OGR_GT_SetModifier | ( | OGRwkbGeometryType | eType,
|  | int | bHasZ,
|  | int | bHasM
| ) |  |

Returns a XY, XYZ, XYM or XYZM geometry type depending on parameter.

Parameters

  eType | Input geometry type
  bHasZ | TRUE if the output geometry type must be 3D.
  bHasM | TRUE if the output geometry type must be measured.

Returns
  Output geometry type.

Since
  GDAL 2.0

## ◆ OGR_GT_SetZ()

OGRwkbGeometryType OGR_GT_SetZ | ( | OGRwkbGeometryType | eType | ) |

Returns the 3D geometry type corresponding to the passed geometry type.

Parameters

  eType | Input geometry type

Returns
  3D geometry type corresponding to the passed geometry type.

Since
  GDAL 2.0

## ◆ OGRGeometryTypeToName()

const char* OGRGeometryTypeToName | ( | OGRwkbGeometryType | eType | ) |

Fetch a human readable name corresponding to an OGRwkbGeometryType value.

The returned value should not be modified, or freed by the application.

This function is C callable.

Parameters

  eType | the geometry type.

Returns
  internal human readable string, or NULL on failure.

## ◆ OGRMergeGeometryTypes()

OGRwkbGeometryType OGRMergeGeometryTypes | ( | OGRwkbGeometryType | eMain,
|  | OGRwkbGeometryType | eExtra
| ) |  |

Find common geometry type.

Given two geometry types, find the most specific common type. Normally used repeatedly with the geometries in a layer to try and establish the most specific geometry type that can be reported for the layer.

NOTE: wkbUnknown is the "worst case" indicating a mixture of geometry types with nothing in common but the base geometry type. wkbNone should be used to indicate that no geometries have been encountered yet, and means the first geometry encountered will establish the preliminary type.

Parameters

  eMain | the first input geometry type.
  eExtra | the second input geometry type.

Returns
  the merged geometry type.

## ◆ OGRMergeGeometryTypesEx()

OGRwkbGeometryType OGRMergeGeometryTypesEx | ( | OGRwkbGeometryType | eMain,
|  | OGRwkbGeometryType | eExtra,
|  | int | bAllowPromotingToCurves
| ) |  |

Find common geometry type.

Given two geometry types, find the most specific common type. Normally used repeatedly with the geometries in a layer to try and establish the most specific geometry type that can be reported for the layer.

NOTE: wkbUnknown is the "worst case" indicating a mixture of geometry types with nothing in common but the base geometry type. wkbNone should be used to indicate that no geometries have been encountered yet, and means the first geometry encountered will establish the preliminary type.

If bAllowPromotingToCurves is set to TRUE, mixing Polygon and CurvePolygon will return CurvePolygon. Mixing LineString, CircularString, CompoundCurve will return CompoundCurve. Mixing MultiPolygon and MultiSurface will return MultiSurface. Mixing MultiCurve and MultiLineString will return MultiCurve.

Parameters

  eMain | the first input geometry type.
  eExtra | the second input geometry type.
  bAllowPromotingToCurves | determine if promotion to curve type must be done.

Returns
  the merged geometry type.

Since
  GDAL 2.0

## ◆ OGRParseDate()

int OGRParseDate | ( | const char * | pszInput,
|  | OGRField * | psField,
|  | int | nOptions
| ) |  |

Parse date string.

This function attempts to parse a date string in a variety of formats into the OGRField.Date format suitable for use with OGR. Generally speaking this function is expecting values like:

YYYY-MM-DD HH:MM:SS[.sss]+nn or YYYY-MM-DDTHH:MM:SS[.sss]Z (ISO 8601 format) or YYYY-MM-DDZ

The seconds may also have a decimal portion (which is ignored). And just dates (YYYY-MM-DD) or just times (HH:MM:SS[.sss]) are also supported. The date may also be in YYYY/MM/DD format. If the year is less than 100 and greater than 30 a "1900" century value will be set. If it is less than 30 and greater than -1 then a "2000" century value will be set. In the future this function may be generalized, and additional control provided through nOptions, but an nOptions value of "0" should always do a reasonable default form of processing.

The value of psField will be indeterminate if the function fails (returns FALSE).

Parameters

  pszInput | the input date string.
  psField | the OGRField that will be updated with the parsed result.
  nOptions | parsing options, for now always 0.

Returns
  TRUE if apparently successful or FALSE on failure.