GDAL

ogr_core.h
Go to the documentation of this file.
1/******************************************************************************
2 * $Id$
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 spatialys.com>
11 *
12 * SPDX-License-Identifier: MIT
13 ****************************************************************************/
14
15#ifndef OGR_CORE_H_INCLUDED
16#define OGR_CORE_H_INCLUDED
17
18#include "cpl_port.h"
19#if defined(GDAL_COMPILATION)
20#define DO_NOT_DEFINE_GDAL_DATE_NAME
21#endif
22#include "gdal_version.h"
23
30#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
31
32 extern "C++"
33{
34#if !defined(DOXYGEN_SKIP)
35#include <cmath>
36#include <limits>
37#endif
38
39 class OGREnvelope3D;
40
44 class CPL_DLL OGREnvelope
45 {
46 public:
48 OGREnvelope()
49 : MinX(std::numeric_limits<double>::infinity()),
50 MaxX(-std::numeric_limits<double>::infinity()),
51 MinY(std::numeric_limits<double>::infinity()),
52 MaxY(-std::numeric_limits<double>::infinity())
53 {
54 }
55
57 OGREnvelope(const OGREnvelope &oOther)
58 : MinX(oOther.MinX), MaxX(oOther.MaxX), MinY(oOther.MinY),
59 MaxY(oOther.MaxY)
60 {
61 }
62
64 OGREnvelope &operator=(const OGREnvelope &) = default;
65
67 double MinX;
68
70 double MaxX;
71
73 double MinY;
74
76 double MaxY;
77
78#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
79#pragma GCC diagnostic push
80#pragma GCC diagnostic ignored "-Wfloat-equal"
81#endif
84 int IsInit() const
85 {
86 return MinX != std::numeric_limits<double>::infinity();
87 }
88
89#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
90#pragma GCC diagnostic pop
91#endif
92
95 void Merge(OGREnvelope const &sOther)
96 {
97 MinX = MIN(MinX, sOther.MinX);
98 MaxX = MAX(MaxX, sOther.MaxX);
99 MinY = MIN(MinY, sOther.MinY);
100 MaxY = MAX(MaxY, sOther.MaxY);
101 }
102
105 void Merge(double dfX, double dfY)
106 {
107 MinX = MIN(MinX, dfX);
108 MaxX = MAX(MaxX, dfX);
109 MinY = MIN(MinY, dfY);
110 MaxY = MAX(MaxY, dfY);
111 }
112
115 void Intersect(OGREnvelope const &sOther)
116 {
117 if (Intersects(sOther))
118 {
119 if (IsInit())
120 {
121 MinX = MAX(MinX, sOther.MinX);
122 MaxX = MIN(MaxX, sOther.MaxX);
123 MinY = MAX(MinY, sOther.MinY);
124 MaxY = MIN(MaxY, sOther.MaxY);
125 }
126 else
127 {
128 MinX = sOther.MinX;
129 MaxX = sOther.MaxX;
130 MinY = sOther.MinY;
131 MaxY = sOther.MaxY;
132 }
133 }
134 else
135 {
136 *this = OGREnvelope();
137 }
138 }
139
142 int Intersects(OGREnvelope const &other) const
143 {
144 return MinX <= other.MaxX && MaxX >= other.MinX &&
145 MinY <= other.MaxY && MaxY >= other.MinY;
146 }
147
149 int Contains(OGREnvelope const &other) const
150 {
151 return MinX <= other.MinX && MinY <= other.MinY &&
152 MaxX >= other.MaxX && MaxY >= other.MaxY;
153 }
154
157 bool operator==(const OGREnvelope &other) const
158 {
159#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
160#pragma GCC diagnostic push
161#pragma GCC diagnostic ignored "-Wfloat-equal"
162#endif
163 return MinX == other.MinX && MinY == other.MinY &&
164 MaxX == other.MaxX && MaxY == other.MaxY;
165
166#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
167#pragma GCC diagnostic pop
168#endif
169 }
170
173 bool operator!=(const OGREnvelope &other) const
174 {
175 return !(*this == other);
176 }
177 };
178
179} // extern "C++"
180
181#else
182 typedef struct
183{
184 double MinX;
185 double MaxX;
186 double MinY;
187 double MaxY;
188} OGREnvelope;
189#endif
190
191#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
192
193 extern "C++"
194{
195
199 class CPL_DLL OGREnvelope3D : public OGREnvelope
200 {
201 public:
203 OGREnvelope3D()
204 : OGREnvelope(), MinZ(std::numeric_limits<double>::infinity()),
205 MaxZ(-std::numeric_limits<double>::infinity())
206 {
207 }
208
210 OGREnvelope3D(const OGREnvelope3D &oOther)
211 : OGREnvelope(oOther), MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
212 {
213 }
214
216 OGREnvelope3D &operator=(const OGREnvelope3D &) = default;
217
219 bool Is3D() const
220 {
221 return std::isfinite(MinZ) && std::isfinite(MaxZ);
222 }
223
225 double MinZ;
226
228 double MaxZ;
229
230#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
231#pragma GCC diagnostic push
232#pragma GCC diagnostic ignored "-Wfloat-equal"
233#endif
236 int IsInit() const
237 {
238 return MinX != std::numeric_limits<double>::infinity();
239 }
240#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
241#pragma GCC diagnostic pop
242#endif
243
246 void Merge(OGREnvelope3D const &sOther)
247 {
248 MinX = MIN(MinX, sOther.MinX);
249 MaxX = MAX(MaxX, sOther.MaxX);
250 MinY = MIN(MinY, sOther.MinY);
251 MaxY = MAX(MaxY, sOther.MaxY);
252 MinZ = MIN(MinZ, sOther.MinZ);
253 MaxZ = MAX(MaxZ, sOther.MaxZ);
254 }
255
258 void Merge(OGREnvelope const &sOther)
259 {
260 MinX = MIN(MinX, sOther.MinX);
261 MaxX = MAX(MaxX, sOther.MaxX);
262 MinY = MIN(MinY, sOther.MinY);
263 MaxY = MAX(MaxY, sOther.MaxY);
264 }
265
268 void Merge(double dfX, double dfY, double dfZ)
269 {
270 MinX = MIN(MinX, dfX);
271 MaxX = MAX(MaxX, dfX);
272 MinY = MIN(MinY, dfY);
273 MaxY = MAX(MaxY, dfY);
274 MinZ = MIN(MinZ, dfZ);
275 MaxZ = MAX(MaxZ, dfZ);
276 }
277
280 void Intersect(OGREnvelope3D const &sOther)
281 {
282 if (Intersects(sOther))
283 {
284 if (IsInit())
285 {
286 MinX = MAX(MinX, sOther.MinX);
287 MaxX = MIN(MaxX, sOther.MaxX);
288 MinY = MAX(MinY, sOther.MinY);
289 MaxY = MIN(MaxY, sOther.MaxY);
290 MinZ = MAX(MinZ, sOther.MinZ);
291 MaxZ = MIN(MaxZ, sOther.MaxZ);
292 }
293 else
294 {
295 MinX = sOther.MinX;
296 MaxX = sOther.MaxX;
297 MinY = sOther.MinY;
298 MaxY = sOther.MaxY;
299 MinZ = sOther.MinZ;
300 MaxZ = sOther.MaxZ;
301 }
302 }
303 else
304 {
305 *this = OGREnvelope3D();
306 }
307 }
308
311 int Intersects(OGREnvelope3D const &other) const
312 {
313 return MinX <= other.MaxX && MaxX >= other.MinX &&
314 MinY <= other.MaxY && MaxY >= other.MinY &&
315 MinZ <= other.MaxZ && MaxZ >= other.MinZ;
316 }
317
319 int Contains(OGREnvelope3D const &other) const
320 {
321 return MinX <= other.MinX && MinY <= other.MinY &&
322 MaxX >= other.MaxX && MaxY >= other.MaxY &&
323 MinZ <= other.MinZ && MaxZ >= other.MaxZ;
324 }
325 };
326
327} // extern "C++"
328
329#else
330 typedef struct
331{
332 double MinX;
333 double MaxX;
334 double MinY;
335 double MaxY;
336 double MinZ;
337 double MaxZ;
338} OGREnvelope3D;
339#endif
340
341 CPL_C_START
342
344 void CPL_DLL *OGRMalloc(size_t) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
345 void CPL_DLL *OGRCalloc(size_t, size_t)
346 CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
347 void CPL_DLL *OGRRealloc(void *, size_t)
348 CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
349 char CPL_DLL *OGRStrdup(const char *)
350 CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
351 void CPL_DLL OGRFree(void *) CPL_WARN_DEPRECATED("Use CPLFree instead.");
354#ifdef STRICT_OGRERR_TYPE
356 typedef enum
357{
358 OGRERR_NONE,
359 OGRERR_NOT_ENOUGH_DATA,
360 OGRERR_NOT_ENOUGH_MEMORY,
361 OGRERR_UNSUPPORTED_GEOMETRY_TYPE,
362 OGRERR_UNSUPPORTED_OPERATION,
363 OGRERR_CORRUPT_DATA,
364 OGRERR_FAILURE,
365 OGRERR_UNSUPPORTED_SRS,
366 OGRERR_INVALID_HANDLE,
367 OGRERR_NON_EXISTING_FEATURE
368} OGRErr;
369#else
371 typedef int OGRErr;
372
373#define OGRERR_NONE 0
374#define OGRERR_NOT_ENOUGH_DATA 1
375#define OGRERR_NOT_ENOUGH_MEMORY 2
376#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
377#define OGRERR_UNSUPPORTED_OPERATION 4
378#define OGRERR_CORRUPT_DATA 5
379#define OGRERR_FAILURE 6
380#define OGRERR_UNSUPPORTED_SRS 7
381#define OGRERR_INVALID_HANDLE 8
382#define OGRERR_NON_EXISTING_FEATURE \
383 9
385#endif
386
388 typedef int OGRBoolean;
389
390/* -------------------------------------------------------------------- */
391/* ogr_geometry.h related definitions. */
392/* -------------------------------------------------------------------- */
393
394#if defined(HAVE_GCC_DIAGNOSTIC_PUSH) && __STDC_VERSION__ < 202311L
395/* wkbPoint25D and friends cause warnings with -Wpedantic prior to C23. */
396/* Cf https://github.com/OSGeo/gdal/issues/2322 */
397#pragma GCC diagnostic push
398#pragma GCC diagnostic ignored "-Wpedantic"
399#endif
400
406 typedef enum
407{
408 wkbUnknown = 0,
410 wkbPoint = 1,
411 wkbLineString = 2,
413 wkbPolygon = 3,
416 wkbMultiPoint = 4,
417 wkbMultiLineString =
418 5,
419 wkbMultiPolygon = 6,
420 wkbGeometryCollection = 7,
423 wkbCircularString = 8,
425 wkbCompoundCurve = 9,
427 wkbCurvePolygon = 10,
430 wkbMultiCurve = 11,
432 wkbMultiSurface = 12,
434 wkbCurve =
435 13,
436 wkbSurface =
437 14,
438 wkbPolyhedralSurface =
439 15,
441 wkbTIN = 16,
443 wkbTriangle = 17,
445 wkbNone = 100,
446 wkbLinearRing = 101,
448 wkbCircularStringZ = 1008,
450 wkbCompoundCurveZ = 1009,
452 wkbCurvePolygonZ = 1010,
454 wkbMultiCurveZ = 1011,
456 wkbMultiSurfaceZ = 1012,
458 wkbCurveZ = 1013,
460 wkbSurfaceZ = 1014,
462 wkbPolyhedralSurfaceZ = 1015,
463 wkbTINZ = 1016,
464 wkbTriangleZ = 1017,
466 wkbPointM = 2001,
467 wkbLineStringM = 2002,
468 wkbPolygonM = 2003,
469 wkbMultiPointM = 2004,
470 wkbMultiLineStringM = 2005,
471 wkbMultiPolygonM = 2006,
472 wkbGeometryCollectionM = 2007,
473 wkbCircularStringM = 2008,
474 wkbCompoundCurveM = 2009,
475 wkbCurvePolygonM = 2010,
476 wkbMultiCurveM = 2011,
477 wkbMultiSurfaceM = 2012,
478 wkbCurveM = 2013,
479 wkbSurfaceM = 2014,
480 wkbPolyhedralSurfaceM = 2015,
481 wkbTINM = 2016,
482 wkbTriangleM = 2017,
484 wkbPointZM = 3001,
485 wkbLineStringZM = 3002,
486 wkbPolygonZM = 3003,
487 wkbMultiPointZM = 3004,
488 wkbMultiLineStringZM = 3005,
489 wkbMultiPolygonZM = 3006,
490 wkbGeometryCollectionZM = 3007,
491 wkbCircularStringZM = 3008,
492 wkbCompoundCurveZM = 3009,
493 wkbCurvePolygonZM = 3010,
494 wkbMultiCurveZM = 3011,
495 wkbMultiSurfaceZM = 3012,
496 wkbCurveZM = 3013,
497 wkbSurfaceZM = 3014,
498 wkbPolyhedralSurfaceZM = 3015,
499 wkbTINZM = 3016,
500 wkbTriangleZM = 3017,
502#if defined(DOXYGEN_SKIP)
503 // Sphinx doesn't like 0x8000000x constants
504 wkbPoint25D = -2147483647,
505 wkbLineString25D = -2147483646,
506 wkbPolygon25D = -2147483645,
507 wkbMultiPoint25D = -2147483644,
508 wkbMultiLineString25D = -2147483643,
509 wkbMultiPolygon25D = -2147483642,
510 wkbGeometryCollection25D = -2147483641
511#else
512 wkbPoint25D = 0x80000001,
513 wkbLineString25D = 0x80000002,
514 wkbPolygon25D = 0x80000003,
515 wkbMultiPoint25D = 0x80000004,
516 wkbMultiLineString25D = 0x80000005,
517 wkbMultiPolygon25D = 0x80000006,
518 wkbGeometryCollection25D = 0x80000007
519#endif
520} OGRwkbGeometryType;
521
522#if defined(HAVE_GCC_DIAGNOSTIC_PUSH) && __STDC_VERSION__ < 202311L
523#pragma GCC diagnostic pop
524#endif
525
526/* clang-format off */
542/* clang-format on */
543
544 typedef enum
545{
546 wkbVariantOldOgc,
547 wkbVariantIso,
549 wkbVariantPostGIS1
551} OGRwkbVariant;
552
553#ifndef GDAL_COMPILATION
555#define wkb25DBit 0x80000000
556#endif
557
558#ifndef __cplusplus
560#define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
561#else
563#define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
564#endif
565
569#define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
570
574#define wkbSetZ(x) OGR_GT_SetZ(x)
575
579#define wkbHasM(x) (OGR_GT_HasM(x) != 0)
580
585#define wkbSetM(x) OGR_GT_SetM(x)
586
587#ifndef DOXYGEN_SKIP
588#define ogrZMarker 0x21125711
589#endif
590
591 const char CPL_DLL *OGRGeometryTypeToName(OGRwkbGeometryType eType);
592 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypes(OGRwkbGeometryType eMain,
593 OGRwkbGeometryType eExtra);
594 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain,
595 OGRwkbGeometryType eExtra,
596 int bAllowPromotingToCurves);
597 OGRwkbGeometryType CPL_DLL OGR_GT_Flatten(OGRwkbGeometryType eType);
598 OGRwkbGeometryType CPL_DLL OGR_GT_SetZ(OGRwkbGeometryType eType);
599 OGRwkbGeometryType CPL_DLL OGR_GT_SetM(OGRwkbGeometryType eType);
600 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier(OGRwkbGeometryType eType,
601 int bSetZ, int bSetM);
602 int CPL_DLL OGR_GT_HasZ(OGRwkbGeometryType eType);
603 int CPL_DLL OGR_GT_HasM(OGRwkbGeometryType eType);
604 int CPL_DLL OGR_GT_IsSubClassOf(OGRwkbGeometryType eType,
605 OGRwkbGeometryType eSuperType);
606 int CPL_DLL OGR_GT_IsCurve(OGRwkbGeometryType);
607 int CPL_DLL OGR_GT_IsSurface(OGRwkbGeometryType);
608 int CPL_DLL OGR_GT_IsNonLinear(OGRwkbGeometryType);
609 OGRwkbGeometryType CPL_DLL OGR_GT_GetCollection(OGRwkbGeometryType eType);
610 OGRwkbGeometryType CPL_DLL OGR_GT_GetCurve(OGRwkbGeometryType eType);
611 OGRwkbGeometryType CPL_DLL OGR_GT_GetLinear(OGRwkbGeometryType eType);
612
614 typedef enum
615{
616 wkbXDR = 0,
617 wkbNDR = 1
618} OGRwkbByteOrder;
619
620#ifndef DOXYGEN_SKIP
621
622#ifndef NO_HACK_FOR_IBM_DB2_V72
623#define HACK_FOR_IBM_DB2_V72
624#endif
625
626#ifdef HACK_FOR_IBM_DB2_V72
627#define DB2_V72_FIX_BYTE_ORDER(x) ((((x)&0x31) == (x)) ? ((x)&0x1) : (x))
628#define DB2_V72_UNFIX_BYTE_ORDER(x) \
629 CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER \
630 ? ((x) | 0x30) \
631 : (x))
632#else
633#define DB2_V72_FIX_BYTE_ORDER(x) (x)
634#define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
635#endif
636
637#endif /* #ifndef DOXYGEN_SKIP */
638
642#define ALTER_NAME_FLAG 0x1
643
647#define ALTER_TYPE_FLAG 0x2
648
652#define ALTER_WIDTH_PRECISION_FLAG 0x4
653
658#define ALTER_NULLABLE_FLAG 0x8
659
664#define ALTER_DEFAULT_FLAG 0x10
665
670#define ALTER_UNIQUE_FLAG 0x20
671
676#define ALTER_DOMAIN_FLAG 0x40
677
682#define ALTER_ALTERNATIVE_NAME_FLAG 0x80
683
688#define ALTER_COMMENT_FLAG 0x100
689
693#define ALTER_ALL_FLAG \
694 (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | \
695 ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | \
696 ALTER_DOMAIN_FLAG | ALTER_ALTERNATIVE_NAME_FLAG | ALTER_COMMENT_FLAG)
697
702#define ALTER_GEOM_FIELD_DEFN_NAME_FLAG 0x1000
703
708#define ALTER_GEOM_FIELD_DEFN_TYPE_FLAG 0x2000
709
714#define ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG 0x4000
715
720#define ALTER_GEOM_FIELD_DEFN_SRS_FLAG 0x8000
721
726#define ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG 0x10000
727
732#define ALTER_GEOM_FIELD_DEFN_ALL_FLAG \
733 (ALTER_GEOM_FIELD_DEFN_NAME_FLAG | ALTER_GEOM_FIELD_DEFN_TYPE_FLAG | \
734 ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG | ALTER_GEOM_FIELD_DEFN_SRS_FLAG | \
735 ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG)
736
741#define OGR_F_VAL_NULL 0x00000001
742
747#define OGR_F_VAL_GEOM_TYPE 0x00000002
748
753#define OGR_F_VAL_WIDTH 0x00000004
754
761#define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
762
769#define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
770
775#define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
776
777/************************************************************************/
778/* ogr_feature.h related definitions. */
779/************************************************************************/
780
787 typedef enum
788{
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,
803 OFTMaxType = 13
804} OGRFieldType;
805
815 typedef enum
816{
OFSTNone = 0,
819 OFSTBoolean = 1,
821 OFSTInt16 = 2,
824 OFSTFloat32 = 3,
828 OFSTJSON = 4,
832 OFSTUUID = 5,
833 OFSTMaxSubType = 5
834} OGRFieldSubType;
835
840 typedef enum
841{
842 OJUndefined = 0,
843 OJLeft = 1,
844 OJRight = 2
845} OGRJustification;
846
848#define OGRNullFID -1
849
850/* Special value for an unknown field type. This should only be used
851 * while reading a file. At the end of file any unknown types should
852 * be set to OFTString.
853 */
855#define OGRUnknownType static_cast<OGRFieldType>(-1)
863#define OGRUnsetMarker -21121
864
871#define OGRNullMarker -21122
872
877#define OGR_TZFLAG_UNKNOWN 0
878
880#define OGR_TZFLAG_LOCALTIME 1
881
886#define OGR_TZFLAG_MIXED_TZ 2
887
894#define OGR_TZFLAG_UTC 100
895
896/************************************************************************/
897/* OGRField */
898/************************************************************************/
899
904 typedef union
905{
907 int Integer;
908 GIntBig Integer64;
909 double Real;
910 char *String;
911
912 struct
913 {
914 int nCount;
915 int *paList;
916 } IntegerList;
917
918 struct
919 {
920 int nCount;
921 GIntBig *paList;
922 } Integer64List;
923
924 struct
925 {
926 int nCount;
927 double *paList;
928 } RealList;
929
930 struct
931 {
932 int nCount;
933 char **paList;
934 } StringList;
935
936 struct
937 {
938 int nCount;
939 GByte *paData;
940 } Binary;
941
942 struct
943 {
944 int nMarker1;
945 int nMarker2;
946 int nMarker3;
947 } Set;
948
949 struct
950 {
951 GInt16 Year;
952 GByte Month;
953 GByte Day;
954 GByte Hour;
955 GByte Minute;
956 GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
957 100=GMT, 104=GMT+1, 80=GMT-5, etc */
958 GByte Reserved; /* must be set to 0 */
959 float Second; /* with millisecond accuracy. at the end of the structure,
960 so as to keep it 12 bytes on 32 bit */
961 } Date;
962
964} OGRField;
965
967 int CPL_DLL OGR_GET_MS(float fSec);
968
970#define OGRPARSEDATE_OPTION_LAX 1
971
972 int CPL_DLL OGRParseDate(const char *pszInput, OGRField *psOutput,
973 int nOptions);
974
975/* -------------------------------------------------------------------- */
976/* Constants from ogrsf_frmts.h for capabilities. */
977/* -------------------------------------------------------------------- */
978#define OLCRandomRead "RandomRead"
979#define OLCSequentialWrite \
980 "SequentialWrite"
981#define OLCRandomWrite "RandomWrite"
982#define OLCFastSpatialFilter \
983 "FastSpatialFilter"
984#define OLCFastFeatureCount \
985 "FastFeatureCount"
987#define OLCFastGetExtent \
988 "FastGetExtent"
989#define OLCFastGetExtent3D \
990 "FastGetExtent3D"
991#define OLCCreateField \
992 "CreateField"
994#define OLCDeleteField \
995 "DeleteField"
997#define OLCReorderFields \
998 "ReorderFields"
999#define OLCAlterFieldDefn \
1000 "AlterFieldDefn"
1001#define OLCAlterGeomFieldDefn \
1002 "AlterGeomFieldDefn"
1004#define OLCTransactions \
1005 "Transactions"
1007#define OLCDeleteFeature \
1008 "DeleteFeature"
1009#define OLCUpsertFeature \
1010 "UpsertFeature"
1011#define OLCUpdateFeature \
1012 "UpdateFeature"
1014#define OLCFastSetNextByIndex \
1015 "FastSetNextByIndex"
1017#define OLCStringsAsUTF8 \
1018 "StringsAsUTF8"
1020#define OLCIgnoreFields \
1021 "IgnoreFields"
1022#define OLCCreateGeomField \
1023 "CreateGeomField"
1024#define OLCCurveGeometries \
1025 "CurveGeometries"
1026#define OLCMeasuredGeometries \
1027 "MeasuredGeometries"
1029#define OLCZGeometries \
1030 "ZGeometries"
1032#define OLCRename \
1033 "Rename"
1034#define OLCFastGetArrowStream \
1035 "FastGetArrowStream"
1037#define OLCFastWriteArrowBatch \
1038 "FastWriteArrowBatch"
1041#define ODsCCreateLayer \
1042 "CreateLayer"
1043#define ODsCDeleteLayer \
1044 "DeleteLayer"
1045/* Reserved: "RenameLayer" */
1046#define ODsCCreateGeomFieldAfterCreateLayer \
1047 "CreateGeomFieldAfterCreateLayer"
1049#define ODsCCurveGeometries \
1050 "CurveGeometries"
1051#define ODsCTransactions \
1052 "Transactions"
1053#define ODsCEmulatedTransactions \
1054 "EmulatedTransactions"
1056#define ODsCMeasuredGeometries \
1057 "MeasuredGeometries"
1059#define ODsCZGeometries \
1060 "ZGeometries"
1062#define ODsCRandomLayerRead \
1063 "RandomLayerRead"
1065/* Note the unfortunate trailing space at the end of the string */
1066#define ODsCRandomLayerWrite \
1067 "RandomLayerWrite "
1069#define ODsCAddFieldDomain \
1070 "AddFieldDomain"
1072#define ODsCDeleteFieldDomain \
1073 "DeleteFieldDomain"
1075#define ODsCUpdateFieldDomain \
1076 "UpdateFieldDomain"
1079#define ODrCCreateDataSource \
1080 "CreateDataSource"
1081#define ODrCDeleteDataSource \
1082 "DeleteDataSource"
1084/* -------------------------------------------------------------------- */
1085/* Layer metadata items. */
1086/* -------------------------------------------------------------------- */
1091#define OLMD_FID64 "OLMD_FID64"
1092
1093/************************************************************************/
1094/* ogr_featurestyle.h related definitions. */
1095/************************************************************************/
1096
1101 typedef enum ogr_style_tool_class_id
1102{
1103 OGRSTCNone = 0,
1104 OGRSTCPen = 1,
1105 OGRSTCBrush = 2,
1106 OGRSTCSymbol = 3,
1107 OGRSTCLabel = 4,
1108 OGRSTCVector = 5
1109} OGRSTClassId;
1110
1114 typedef enum ogr_style_tool_units_id
1115{
1116 OGRSTUGround = 0,
1117 OGRSTUPixel = 1,
1118 OGRSTUPoints = 2,
1119 OGRSTUMM = 3,
1120 OGRSTUCM = 4,
1121 OGRSTUInches = 5
1122} OGRSTUnitId;
1123
1127 typedef enum ogr_style_tool_param_pen_id
1128{
1129 OGRSTPenColor = 0,
1130 OGRSTPenWidth = 1,
1131 OGRSTPenPattern = 2,
1132 OGRSTPenId = 3,
1133 OGRSTPenPerOffset = 4,
1134 OGRSTPenCap = 5,
1135 OGRSTPenJoin = 6,
1136 OGRSTPenPriority = 7,
1137#ifndef DOXYGEN_SKIP
1138 OGRSTPenLast = 8
1139#endif
1140} OGRSTPenParam;
1141
1145 typedef enum ogr_style_tool_param_brush_id
1146{
1147 OGRSTBrushFColor = 0,
1148 OGRSTBrushBColor = 1,
1149 OGRSTBrushId = 2,
1150 OGRSTBrushAngle = 3,
1151 OGRSTBrushSize = 4,
1152 OGRSTBrushDx = 5,
1153 OGRSTBrushDy = 6,
1154 OGRSTBrushPriority = 7,
1155#ifndef DOXYGEN_SKIP
1156 OGRSTBrushLast = 8
1157#endif
1158
1159} OGRSTBrushParam;
1160
1164 typedef enum ogr_style_tool_param_symbol_id
1165{
1166 OGRSTSymbolId = 0,
1167 OGRSTSymbolAngle = 1,
1168 OGRSTSymbolColor = 2,
1169 OGRSTSymbolSize = 3,
1170 OGRSTSymbolDx = 4,
1171 OGRSTSymbolDy = 5,
1172 OGRSTSymbolStep = 6,
1173 OGRSTSymbolPerp = 7,
1174 OGRSTSymbolOffset = 8,
1175 OGRSTSymbolPriority = 9,
1176 OGRSTSymbolFontName = 10,
1177 OGRSTSymbolOColor = 11,
1178#ifndef DOXYGEN_SKIP
1179 OGRSTSymbolLast = 12
1180#endif
1181} OGRSTSymbolParam;
1182
1186 typedef enum ogr_style_tool_param_label_id
1187{
1188 OGRSTLabelFontName = 0,
1189 OGRSTLabelSize = 1,
1190 OGRSTLabelTextString = 2,
1191 OGRSTLabelAngle = 3,
1192 OGRSTLabelFColor = 4,
1193 OGRSTLabelBColor = 5,
1194 OGRSTLabelPlacement = 6,
1195 OGRSTLabelAnchor = 7,
1196 OGRSTLabelDx = 8,
1197 OGRSTLabelDy = 9,
1198 OGRSTLabelPerp = 10,
1199 OGRSTLabelBold = 11,
1200 OGRSTLabelItalic = 12,
1201 OGRSTLabelUnderline = 13,
1202 OGRSTLabelPriority = 14,
1203 OGRSTLabelStrikeout = 15,
1204 OGRSTLabelStretch = 16,
1205 OGRSTLabelAdjHor = 17,
1206 OGRSTLabelAdjVert = 18,
1207 OGRSTLabelHColor = 19,
1208 OGRSTLabelOColor = 20,
1209#ifndef DOXYGEN_SKIP
1210 OGRSTLabelLast = 21
1211#endif
1212} OGRSTLabelParam;
1213
1214/* -------------------------------------------------------------------- */
1215/* Field domains */
1216/* -------------------------------------------------------------------- */
1217
1222 typedef struct
1223{
1225 char *pszCode;
1226
1228 char *pszValue;
1229} OGRCodedValue;
1230
1235 typedef enum
1236{
1238 OFDT_CODED,
1240 OFDT_RANGE,
1242 OFDT_GLOB
1243} OGRFieldDomainType;
1244
1252 typedef enum
1253{
1255 OFDSP_DEFAULT_VALUE,
1257 OFDSP_DUPLICATE,
1260 OFDSP_GEOMETRY_RATIO
1261} OGRFieldDomainSplitPolicy;
1262
1270 typedef enum
1271{
1273 OFDMP_DEFAULT_VALUE,
1275 OFDMP_SUM,
1277 OFDMP_GEOMETRY_WEIGHTED
1278} OGRFieldDomainMergePolicy;
1279
1280/* ------------------------------------------------------------------- */
1281/* Version checking */
1282/* -------------------------------------------------------------------- */
1283
1284#ifndef DOXYGEN_SKIP
1285
1286/* Note to developers : please keep this section in sync with gdal.h */
1287
1288#ifndef GDAL_VERSION_INFO_DEFINED
1289#define GDAL_VERSION_INFO_DEFINED
1290 const char CPL_DLL *CPL_STDCALL GDALVersionInfo(const char *);
1291#endif
1292
1293#ifndef GDAL_CHECK_VERSION
1294
1307 int CPL_DLL CPL_STDCALL GDALCheckVersion(int nVersionMajor, int nVersionMinor,
1308 const char *pszCallingComponentName);
1309
1311#define GDAL_CHECK_VERSION(pszCallingComponentName) \
1312 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, \
1313 pszCallingComponentName)
1314
1315#endif
1316
1317#endif /* #ifndef DOXYGEN_SKIP */
1318
1319 CPL_C_END
1320
1321#endif /* ndef OGR_CORE_H_INCLUDED */
OGREnvelope3D
Simple container for a bounding region in 3D.
Definition ogr_core.h:200
OGREnvelope3D::Merge
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:258
OGREnvelope3D::Merge
void Merge(OGREnvelope3D const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:246
OGREnvelope3D::IsInit
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:236
OGREnvelope3D::Merge
void Merge(double dfX, double dfY, double dfZ)
Update the current object by computing its union with the provided point.
Definition ogr_core.h:268
OGREnvelope3D::Intersects
int Intersects(OGREnvelope3D const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:311
OGREnvelope3D::MaxZ
double MaxZ
Maximum Z value.
Definition ogr_core.h:228
OGREnvelope3D::operator=
OGREnvelope3D & operator=(const OGREnvelope3D &)=default
Assignment operator.
OGREnvelope3D::Is3D
bool Is3D() const
Returns TRUE if MinZ and MaxZ are both valid numbers.
Definition ogr_core.h:219
OGREnvelope3D::MinZ
double MinZ
Minimum Z value.
Definition ogr_core.h:225
OGREnvelope3D::OGREnvelope3D
OGREnvelope3D()
Default constructor.
Definition ogr_core.h:203
OGREnvelope3D::Contains
int Contains(OGREnvelope3D const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:319
OGREnvelope3D::Intersect
void Intersect(OGREnvelope3D const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:280
OGREnvelope3D::OGREnvelope3D
OGREnvelope3D(const OGREnvelope3D &oOther)
Copy constructor.
Definition ogr_core.h:210
OGREnvelope
Simple container for a bounding region (rectangle)
Definition ogr_core.h:45
OGREnvelope::Contains
int Contains(OGREnvelope const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:149
OGREnvelope::MinY
double MinY
Minimum Y value.
Definition ogr_core.h:73
OGREnvelope::operator!=
bool operator!=(const OGREnvelope &other) const
Return whether the current rectangle is not equal to the other rectangle.
Definition ogr_core.h:173
OGREnvelope::MaxX
double MaxX
Maximum X value.
Definition ogr_core.h:70
OGREnvelope::Intersect
void Intersect(OGREnvelope const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:115
OGREnvelope::MinX
double MinX
Minimum X value.
Definition ogr_core.h:67
OGREnvelope::OGREnvelope
OGREnvelope()
Default constructor.
Definition ogr_core.h:48
OGREnvelope::MaxY
double MaxY
Maximum Y value.
Definition ogr_core.h:76
OGREnvelope::IsInit
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:84
OGREnvelope::Intersects
int Intersects(OGREnvelope const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:142
OGREnvelope::Merge
void Merge(double dfX, double dfY)
Update the current object by computing its union with the provided point.
Definition ogr_core.h:105
OGREnvelope::operator==
bool operator==(const OGREnvelope &other) const
Return whether the current rectangle is equal to the other rectangle.
Definition ogr_core.h:157
OGREnvelope::operator=
OGREnvelope & operator=(const OGREnvelope &)=default
Assignment operator.
OGREnvelope::OGREnvelope
OGREnvelope(const OGREnvelope &oOther)
Copy constructor.
Definition ogr_core.h:57
OGREnvelope::Merge
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:95
cpl_port.h
Core portability definitions for CPL.
MIN
#define MIN(a, b)
Macro to compute the minimum of 2 values.
Definition cpl_port.h:356
GInt16
short GInt16
Int16 type.
Definition cpl_port.h:165
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:283
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:279
GByte
unsigned char GByte
Unsigned byte type.
Definition cpl_port.h:169
GIntBig
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:199
MAX
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition cpl_port.h:358
GDALCheckVersion
int GDALCheckVersion(int nVersionMajor, int nVersionMinor, const char *pszCallingComponentName)
Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
Definition gdal_misc.cpp:2914
GDALVersionInfo
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition gdal_misc.cpp:2744
OGRMergeGeometryTypesEx
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition ogrgeometry.cpp:2945
OGRERR_NOT_ENOUGH_MEMORY
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition ogr_core.h:375
OGR_GT_HasM
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition ogrgeometry.cpp:7516
OGR_GT_IsSurface
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition ogrgeometry.cpp:7851
OGRBoolean
int OGRBoolean
Type for a OGR boolean.
Definition ogr_core.h:388
OGRFieldSubType
OGRFieldSubType
List of field subtypes.
Definition ogr_core.h:816
OFSTBoolean
@ OFSTBoolean
Boolean integer.
Definition ogr_core.h:819
OFSTInt16
@ OFSTInt16
Signed 16-bit integer.
Definition ogr_core.h:821
OFSTUUID
@ OFSTUUID
UUID string representation.
Definition ogr_core.h:832
OFSTJSON
@ OFSTJSON
JSON content.
Definition ogr_core.h:828
OFSTNone
@ OFSTNone
No subtype.
Definition ogr_core.h:817
OFSTFloat32
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition ogr_core.h:824
ogr_style_tool_param_symbol_id
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition ogr_core.h:1165
OGRSTSymbolDy
@ OGRSTSymbolDy
Dy.
Definition ogr_core.h:1171
OGRSTSymbolId
@ OGRSTSymbolId
Id.
Definition ogr_core.h:1166
OGRSTSymbolSize
@ OGRSTSymbolSize
Size.
Definition ogr_core.h:1169
OGRSTSymbolFontName
@ OGRSTSymbolFontName
Font name.
Definition ogr_core.h:1176
OGRSTSymbolColor
@ OGRSTSymbolColor
Color.
Definition ogr_core.h:1168
OGRSTSymbolDx
@ OGRSTSymbolDx
Dx.
Definition ogr_core.h:1170
OGRSTSymbolPerp
@ OGRSTSymbolPerp
Perpendicular.
Definition ogr_core.h:1173
OGRSTSymbolAngle
@ OGRSTSymbolAngle
Angle.
Definition ogr_core.h:1167
OGRSTSymbolOColor
@ OGRSTSymbolOColor
Outline color.
Definition ogr_core.h:1177
OGRSTSymbolPriority
@ OGRSTSymbolPriority
Priority.
Definition ogr_core.h:1175
OGRSTSymbolStep
@ OGRSTSymbolStep
Step.
Definition ogr_core.h:1172
OGRSTSymbolOffset
@ OGRSTSymbolOffset
Offset.
Definition ogr_core.h:1174
OGRSTSymbolParam
enum ogr_style_tool_param_symbol_id OGRSTSymbolParam
List of parameters for use with OGRStyleSymbol.
OGRFieldDomainMergePolicy
OGRFieldDomainMergePolicy
Merge policy for field domains.
Definition ogr_core.h:1271
OFDMP_SUM
@ OFDMP_SUM
Sum.
Definition ogr_core.h:1275
OFDMP_GEOMETRY_WEIGHTED
@ OFDMP_GEOMETRY_WEIGHTED
New values are computed as the weighted average of the source values.
Definition ogr_core.h:1277
OFDMP_DEFAULT_VALUE
@ OFDMP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1273
OGRwkbByteOrder
OGRwkbByteOrder
Enumeration to describe byte order.
Definition ogr_core.h:615
wkbXDR
@ wkbXDR
MSB/Sun/Motorola: Most Significant Byte First
Definition ogr_core.h:616
wkbNDR
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition ogr_core.h:617
OGRParseDate
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition ogrutils.cpp:1061
OGRERR_UNSUPPORTED_GEOMETRY_TYPE
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition ogr_core.h:376
OGRFieldDomainType
OGRFieldDomainType
Type of field domain.
Definition ogr_core.h:1236
OFDT_RANGE
@ OFDT_RANGE
Range (min/max)
Definition ogr_core.h:1240
OFDT_CODED
@ OFDT_CODED
Coded.
Definition ogr_core.h:1238
OFDT_GLOB
@ OFDT_GLOB
Glob (used by GeoPackage)
Definition ogr_core.h:1242
OGRSTPenParam
enum ogr_style_tool_param_pen_id OGRSTPenParam
List of parameters for use with OGRStylePen.
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:7788
OGR_GT_IsCurve
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition ogrgeometry.cpp:7830
OGR_GT_SetZ
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:7539
OGRERR_FAILURE
#define OGRERR_FAILURE
Failure.
Definition ogr_core.h:379
OGRERR_UNSUPPORTED_OPERATION
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition ogr_core.h:377
OGRwkbVariant
OGRwkbVariant
Output variants of WKB we support.
Definition ogr_core.h:545
wkbVariantPostGIS1
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition ogr_core.h:549
wkbVariantOldOgc
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition ogr_core.h:546
wkbVariantIso
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition ogr_core.h:547
OGRERR_NONE
#define OGRERR_NONE
Success.
Definition ogr_core.h:373
OGRMergeGeometryTypes
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition ogrgeometry.cpp:2909
OGRJustification
OGRJustification
Display justification for field values.
Definition ogr_core.h:841
OGRFieldType
OGRFieldType
List of feature field types.
Definition ogr_core.h:788
OFTTime
@ OFTTime
Time.
Definition ogr_core.h:799
OFTInteger64List
@ OFTInteger64List
List of signed 64bit integers.
Definition ogr_core.h:802
OFTIntegerList
@ OFTIntegerList
List of signed 32bit integers.
Definition ogr_core.h:790
OFTDate
@ OFTDate
Date.
Definition ogr_core.h:798
OFTWideStringList
@ OFTWideStringList
deprecated
Definition ogr_core.h:796
OFTInteger
@ OFTInteger
Single signed 32bit integer.
Definition ogr_core.h:789
OFTString
@ OFTString
String of ASCII chars.
Definition ogr_core.h:793
OFTBinary
@ OFTBinary
Raw Binary data.
Definition ogr_core.h:797
OFTRealList
@ OFTRealList
List of doubles.
Definition ogr_core.h:792
OFTReal
@ OFTReal
Double Precision floating point.
Definition ogr_core.h:791
OFTStringList
@ OFTStringList
Array of strings.
Definition ogr_core.h:794
OFTDateTime
@ OFTDateTime
Date and Time.
Definition ogr_core.h:800
OFTInteger64
@ OFTInteger64
Single signed 64bit integer.
Definition ogr_core.h:801
OFTWideString
@ OFTWideString
deprecated
Definition ogr_core.h:795
OGR_GT_GetCurve
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition ogrgeometry.cpp:7738
OGRwkbGeometryType
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:407
wkbPolygon25D
@ wkbPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:506
wkbCurve
@ wkbCurve
Curve (abstract type).
Definition ogr_core.h:434
wkbLineString
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition ogr_core.h:411
wkbCircularString
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition ogr_core.h:423
wkbSurfaceZM
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:497
wkbPolygon
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition ogr_core.h:413
wkbTriangle
@ wkbTriangle
a Triangle.
Definition ogr_core.h:443
wkbPoint25D
@ wkbPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:504
wkbSurfaceZ
@ wkbSurfaceZ
wkbSurface with Z component.
Definition ogr_core.h:460
wkbMultiSurfaceM
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:477
wkbPolygonZM
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:486
wkbMultiPolygon25D
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:509
wkbPolyhedralSurfaceM
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:480
wkbTINZM
@ wkbTINZM
ISO SQL/MM Part 3.
Definition ogr_core.h:499
wkbMultiPointZM
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:487
wkbPointM
@ wkbPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:466
wkbMultiLineString
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition ogr_core.h:417
wkbCompoundCurveM
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:474
wkbUnknown
@ wkbUnknown
unknown type, non-standard
Definition ogr_core.h:408
wkbMultiSurfaceZM
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:495
wkbTINZ
@ wkbTINZ
ISO SQL/MM Part 3.
Definition ogr_core.h:463
wkbCircularStringM
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:473
wkbPolygonM
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:468
wkbMultiCurveM
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:476
wkbLinearRing
@ wkbLinearRing
non-standard, just for createGeometry()
Definition ogr_core.h:446
wkbLineStringM
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:467
wkbTIN
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition ogr_core.h:441
wkbGeometryCollection25D
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition ogr_core.h:510
wkbSurfaceM
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:479
wkbCurvePolygonM
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:475
wkbPolyhedralSurface
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition ogr_core.h:438
wkbSurface
@ wkbSurface
Surface (abstract type).
Definition ogr_core.h:436
wkbMultiCurveZ
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition ogr_core.h:454
wkbCircularStringZ
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition ogr_core.h:448
wkbPoint
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition ogr_core.h:410
wkbCompoundCurve
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition ogr_core.h:425
wkbPolyhedralSurfaceZ
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition ogr_core.h:462
wkbGeometryCollection
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition ogr_core.h:420
wkbMultiPolygon
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition ogr_core.h:419
wkbMultiPoint
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition ogr_core.h:416
wkbMultiLineStringM
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:470
wkbMultiCurveZM
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:494
wkbMultiPoint25D
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:507
wkbNone
@ wkbNone
non-standard, for pure attribute records
Definition ogr_core.h:445
wkbMultiPointM
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:469
wkbCircularStringZM
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:491
wkbCurvePolygonZ
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition ogr_core.h:452
wkbCompoundCurveZM
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:492
wkbTriangleZ
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition ogr_core.h:464
wkbPointZM
@ wkbPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:484
wkbCurvePolygon
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition ogr_core.h:427
wkbLineStringZM
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:485
wkbMultiSurface
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition ogr_core.h:432
wkbMultiPolygonM
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:471
wkbCurveZM
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:496
wkbLineString25D
@ wkbLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:505
wkbMultiLineStringZM
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:488
wkbPolyhedralSurfaceZM
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:498
wkbGeometryCollectionZM
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition ogr_core.h:490
wkbTriangleZM
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition ogr_core.h:500
wkbGeometryCollectionM
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition ogr_core.h:472
wkbCurveM
@ wkbCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:478
wkbMultiLineString25D
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:508
wkbTriangleM
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition ogr_core.h:482
wkbMultiPolygonZM
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:489
wkbTINM
@ wkbTINM
ISO SQL/MM Part 3.
Definition ogr_core.h:481
wkbCurveZ
@ wkbCurveZ
wkbCurve with Z component.
Definition ogr_core.h:458
wkbCurvePolygonZM
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:493
wkbMultiCurve
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition ogr_core.h:430
wkbCompoundCurveZ
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition ogr_core.h:450
wkbMultiSurfaceZ
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition ogr_core.h:456
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:7590
OGRERR_CORRUPT_DATA
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition ogr_core.h:378
ogr_style_tool_param_label_id
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition ogr_core.h:1187
OGRSTLabelUnderline
@ OGRSTLabelUnderline
Underline.
Definition ogr_core.h:1201
OGRSTLabelPriority
@ OGRSTLabelPriority
Priority.
Definition ogr_core.h:1202
OGRSTLabelAdjVert
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition ogr_core.h:1206
OGRSTLabelBold
@ OGRSTLabelBold
Bold.
Definition ogr_core.h:1199
OGRSTLabelStrikeout
@ OGRSTLabelStrikeout
Strike out.
Definition ogr_core.h:1203
OGRSTLabelBColor
@ OGRSTLabelBColor
Background color.
Definition ogr_core.h:1193
OGRSTLabelPlacement
@ OGRSTLabelPlacement
Placement.
Definition ogr_core.h:1194
OGRSTLabelPerp
@ OGRSTLabelPerp
Perpendicular.
Definition ogr_core.h:1198
OGRSTLabelOColor
@ OGRSTLabelOColor
Outline color.
Definition ogr_core.h:1208
OGRSTLabelDx
@ OGRSTLabelDx
Dx.
Definition ogr_core.h:1196
OGRSTLabelHColor
@ OGRSTLabelHColor
Highlight color.
Definition ogr_core.h:1207
OGRSTLabelItalic
@ OGRSTLabelItalic
Italic.
Definition ogr_core.h:1200
OGRSTLabelTextString
@ OGRSTLabelTextString
Text string.
Definition ogr_core.h:1190
OGRSTLabelSize
@ OGRSTLabelSize
Size.
Definition ogr_core.h:1189
OGRSTLabelAngle
@ OGRSTLabelAngle
Angle.
Definition ogr_core.h:1191
OGRSTLabelFColor
@ OGRSTLabelFColor
Foreground color.
Definition ogr_core.h:1192
OGRSTLabelDy
@ OGRSTLabelDy
Dy.
Definition ogr_core.h:1197
OGRSTLabelFontName
@ OGRSTLabelFontName
Font name.
Definition ogr_core.h:1188
OGRSTLabelStretch
@ OGRSTLabelStretch
Stretch.
Definition ogr_core.h:1204
OGRSTLabelAnchor
@ OGRSTLabelAnchor
Anchor.
Definition ogr_core.h:1195
OGRSTLabelAdjHor
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition ogr_core.h:1205
ogr_style_tool_units_id
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition ogr_core.h:1115
OGRSTUGround
@ OGRSTUGround
Ground unit.
Definition ogr_core.h:1116
OGRSTUMM
@ OGRSTUMM
Millimeter.
Definition ogr_core.h:1119
OGRSTUInches
@ OGRSTUInches
Inch.
Definition ogr_core.h:1121
OGRSTUCM
@ OGRSTUCM
Centimeter.
Definition ogr_core.h:1120
OGRSTUPoints
@ OGRSTUPoints
Points.
Definition ogr_core.h:1118
OGRSTUPixel
@ OGRSTUPixel
Pixel.
Definition ogr_core.h:1117
OGR_GT_IsSubClassOf
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition ogrgeometry.cpp:7617
OGRSTClassId
enum ogr_style_tool_class_id OGRSTClassId
OGRStyleTool derived class types (returned by GetType()).
OGRERR_NON_EXISTING_FEATURE
#define OGRERR_NON_EXISTING_FEATURE
Non existing feature.
Definition ogr_core.h:382
OGRGeometryTypeToName
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition ogrgeometry.cpp:2687
OGRSTUnitId
enum ogr_style_tool_units_id OGRSTUnitId
List of units supported by OGRStyleTools.
OGRERR_INVALID_HANDLE
#define OGRERR_INVALID_HANDLE
Invalid handle.
Definition ogr_core.h:381
OGRSTBrushParam
enum ogr_style_tool_param_brush_id OGRSTBrushParam
List of parameters for use with OGRStyleBrush.
OGRSTLabelParam
enum ogr_style_tool_param_label_id OGRSTLabelParam
List of parameters for use with OGRStyleLabel.
OGRERR_NOT_ENOUGH_DATA
#define OGRERR_NOT_ENOUGH_DATA
Not enough data to deserialize.
Definition ogr_core.h:374
OGRErr
int OGRErr
Type for a OGR error.
Definition ogr_core.h:371
OGR_GET_MS
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition ogrutils.cpp:2318
ogr_style_tool_param_brush_id
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition ogr_core.h:1146
OGRSTBrushAngle
@ OGRSTBrushAngle
Angle.
Definition ogr_core.h:1150
OGRSTBrushId
@ OGRSTBrushId
Id.
Definition ogr_core.h:1149
OGRSTBrushPriority
@ OGRSTBrushPriority
Priority.
Definition ogr_core.h:1154
OGRSTBrushBColor
@ OGRSTBrushBColor
Background color.
Definition ogr_core.h:1148
OGRSTBrushSize
@ OGRSTBrushSize
Size.
Definition ogr_core.h:1151
OGRSTBrushDy
@ OGRSTBrushDy
Dy.
Definition ogr_core.h:1153
OGRSTBrushFColor
@ OGRSTBrushFColor
Foreground color.
Definition ogr_core.h:1147
OGRSTBrushDx
@ OGRSTBrushDx
Dx.
Definition ogr_core.h:1152
OGR_GT_GetCollection
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition ogrgeometry.cpp:7681
OGR_GT_SetM
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:7563
ogr_style_tool_class_id
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition ogr_core.h:1102
OGRSTCBrush
@ OGRSTCBrush
Brush.
Definition ogr_core.h:1105
OGRSTCVector
@ OGRSTCVector
Vector.
Definition ogr_core.h:1108
OGRSTCNone
@ OGRSTCNone
None.
Definition ogr_core.h:1103
OGRSTCLabel
@ OGRSTCLabel
Label.
Definition ogr_core.h:1107
OGRSTCPen
@ OGRSTCPen
Pen.
Definition ogr_core.h:1104
OGRSTCSymbol
@ OGRSTCSymbol
Symbol.
Definition ogr_core.h:1106
OGR_GT_Flatten
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:7467
ogr_style_tool_param_pen_id
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition ogr_core.h:1128
OGRSTPenId
@ OGRSTPenId
Id.
Definition ogr_core.h:1132
OGRSTPenCap
@ OGRSTPenCap
Cap.
Definition ogr_core.h:1134
OGRSTPenPerOffset
@ OGRSTPenPerOffset
Perpendicular offset.
Definition ogr_core.h:1133
OGRSTPenWidth
@ OGRSTPenWidth
Width.
Definition ogr_core.h:1130
OGRSTPenColor
@ OGRSTPenColor
Color.
Definition ogr_core.h:1129
OGRSTPenJoin
@ OGRSTPenJoin
Join.
Definition ogr_core.h:1135
OGRSTPenPriority
@ OGRSTPenPriority
Priority.
Definition ogr_core.h:1136
OGRSTPenPattern
@ OGRSTPenPattern
Pattern.
Definition ogr_core.h:1131
OGR_GT_IsNonLinear
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition ogrgeometry.cpp:7873
OGRERR_UNSUPPORTED_SRS
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition ogr_core.h:380
OGR_GT_HasZ
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition ogrgeometry.cpp:7492
OGRFieldDomainSplitPolicy
OGRFieldDomainSplitPolicy
Split policy for field domains.
Definition ogr_core.h:1253
OFDSP_DEFAULT_VALUE
@ OFDSP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1255
OFDSP_DUPLICATE
@ OFDSP_DUPLICATE
Duplicate.
Definition ogr_core.h:1257
OFDSP_GEOMETRY_RATIO
@ OFDSP_GEOMETRY_RATIO
New values are computed by the ratio of their area/length compared to the area/length of the original...
Definition ogr_core.h:1260
OGRCodedValue
Associates a code and a value.
Definition ogr_core.h:1223
OGRCodedValue::pszValue
char * pszValue
Value.
Definition ogr_core.h:1228
OGRCodedValue::pszCode
char * pszCode
Code.
Definition ogr_core.h:1225
OGRField
OGRFeature field attribute value union.
Definition ogr_core.h:905