GDAL

ogr_core.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Project: OpenGIS Simple Features Reference Implementation
4 * Purpose: Define some core portability services for cross-platform OGR code.
5 * Author: Frank Warmerdam, warmerdam@pobox.com
6 *
7 ******************************************************************************
8 * Copyright (c) 1999, Frank Warmerdam
9 * Copyright (c) 2007-2014, Even Rouault <even dot rouault at spatialys.com>
10 *
11 * SPDX-License-Identifier: MIT
12 ****************************************************************************/
13
14#ifndef OGR_CORE_H_INCLUDED
15#define OGR_CORE_H_INCLUDED
16
17#include "cpl_port.h"
18#if defined(GDAL_COMPILATION)
19#define DO_NOT_DEFINE_GDAL_DATE_NAME
20#endif
21#include "gdal_version.h"
22
29#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
30
31 extern "C++"
32{
33#if !defined(DOXYGEN_SKIP)
34#include <cmath>
35#include <limits>
36#endif
37
38 class OGREnvelope3D;
39
43 class CPL_DLL OGREnvelope
44 {
45 public:
47 OGREnvelope()
48 : MinX(std::numeric_limits<double>::infinity()),
49 MaxX(-std::numeric_limits<double>::infinity()),
50 MinY(std::numeric_limits<double>::infinity()),
51 MaxY(-std::numeric_limits<double>::infinity())
52 {
53 }
54
56 OGREnvelope(const OGREnvelope &oOther)
57 : MinX(oOther.MinX), MaxX(oOther.MaxX), MinY(oOther.MinY),
58 MaxY(oOther.MaxY)
59 {
60 }
61
63 OGREnvelope &operator=(const OGREnvelope &) = default;
64
66 double MinX;
67
69 double MaxX;
70
72 double MinY;
73
75 double MaxY;
76
77#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
78#pragma GCC diagnostic push
79#pragma GCC diagnostic ignored "-Wfloat-equal"
80#endif
83 int IsInit() const
84 {
85 return MinX != std::numeric_limits<double>::infinity();
86 }
87
88#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
89#pragma GCC diagnostic pop
90#endif
91
94 void Merge(OGREnvelope const &sOther)
95 {
96 MinX = MIN(MinX, sOther.MinX);
97 MaxX = MAX(MaxX, sOther.MaxX);
98 MinY = MIN(MinY, sOther.MinY);
99 MaxY = MAX(MaxY, sOther.MaxY);
100 }
101
104 void Merge(double dfX, double dfY)
105 {
106 MinX = MIN(MinX, dfX);
107 MaxX = MAX(MaxX, dfX);
108 MinY = MIN(MinY, dfY);
109 MaxY = MAX(MaxY, dfY);
110 }
111
114 void Intersect(OGREnvelope const &sOther)
115 {
116 if (Intersects(sOther))
117 {
118 if (IsInit())
119 {
120 MinX = MAX(MinX, sOther.MinX);
121 MaxX = MIN(MaxX, sOther.MaxX);
122 MinY = MAX(MinY, sOther.MinY);
123 MaxY = MIN(MaxY, sOther.MaxY);
124 }
125 else
126 {
127 MinX = sOther.MinX;
128 MaxX = sOther.MaxX;
129 MinY = sOther.MinY;
130 MaxY = sOther.MaxY;
131 }
132 }
133 else
134 {
135 *this = OGREnvelope();
136 }
137 }
138
141 int Intersects(OGREnvelope const &other) const
142 {
143 return MinX <= other.MaxX && MaxX >= other.MinX &&
144 MinY <= other.MaxY && MaxY >= other.MinY;
145 }
146
148 int Contains(OGREnvelope const &other) const
149 {
150 return MinX <= other.MinX && MinY <= other.MinY &&
151 MaxX >= other.MaxX && MaxY >= other.MaxY;
152 }
153
156 bool operator==(const OGREnvelope &other) const
157 {
158#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
159#pragma GCC diagnostic push
160#pragma GCC diagnostic ignored "-Wfloat-equal"
161#endif
162 return MinX == other.MinX && MinY == other.MinY &&
163 MaxX == other.MaxX && MaxY == other.MaxY;
164
165#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
166#pragma GCC diagnostic pop
167#endif
168 }
169
172 bool operator!=(const OGREnvelope &other) const
173 {
174 return !(*this == other);
175 }
176 };
177
178} // extern "C++"
179
180#else
181 typedef struct
182{
183 double MinX;
184 double MaxX;
185 double MinY;
186 double MaxY;
187} OGREnvelope;
188#endif
189
190#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS)
191
192 extern "C++"
193{
194
198 class CPL_DLL OGREnvelope3D : public OGREnvelope
199 {
200 public:
202 OGREnvelope3D()
203 : OGREnvelope(), MinZ(std::numeric_limits<double>::infinity()),
204 MaxZ(-std::numeric_limits<double>::infinity())
205 {
206 }
207
209 OGREnvelope3D(const OGREnvelope3D &oOther)
210 : OGREnvelope(oOther), MinZ(oOther.MinZ), MaxZ(oOther.MaxZ)
211 {
212 }
213
215 OGREnvelope3D &operator=(const OGREnvelope3D &) = default;
216
218 bool Is3D() const
219 {
220 return std::isfinite(MinZ) && std::isfinite(MaxZ);
221 }
222
224 double MinZ;
225
227 double MaxZ;
228
229#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
230#pragma GCC diagnostic push
231#pragma GCC diagnostic ignored "-Wfloat-equal"
232#endif
235 int IsInit() const
236 {
237 return MinX != std::numeric_limits<double>::infinity();
238 }
239#ifdef HAVE_GCC_DIAGNOSTIC_PUSH
240#pragma GCC diagnostic pop
241#endif
242
245 void Merge(OGREnvelope3D const &sOther)
246 {
247 MinX = MIN(MinX, sOther.MinX);
248 MaxX = MAX(MaxX, sOther.MaxX);
249 MinY = MIN(MinY, sOther.MinY);
250 MaxY = MAX(MaxY, sOther.MaxY);
251 MinZ = MIN(MinZ, sOther.MinZ);
252 MaxZ = MAX(MaxZ, sOther.MaxZ);
253 }
254
257 void Merge(OGREnvelope const &sOther)
258 {
259 MinX = MIN(MinX, sOther.MinX);
260 MaxX = MAX(MaxX, sOther.MaxX);
261 MinY = MIN(MinY, sOther.MinY);
262 MaxY = MAX(MaxY, sOther.MaxY);
263 }
264
267 void Merge(double dfX, double dfY, double dfZ)
268 {
269 MinX = MIN(MinX, dfX);
270 MaxX = MAX(MaxX, dfX);
271 MinY = MIN(MinY, dfY);
272 MaxY = MAX(MaxY, dfY);
273 MinZ = MIN(MinZ, dfZ);
274 MaxZ = MAX(MaxZ, dfZ);
275 }
276
279 void Intersect(OGREnvelope3D const &sOther)
280 {
281 if (Intersects(sOther))
282 {
283 if (IsInit())
284 {
285 MinX = MAX(MinX, sOther.MinX);
286 MaxX = MIN(MaxX, sOther.MaxX);
287 MinY = MAX(MinY, sOther.MinY);
288 MaxY = MIN(MaxY, sOther.MaxY);
289 MinZ = MAX(MinZ, sOther.MinZ);
290 MaxZ = MIN(MaxZ, sOther.MaxZ);
291 }
292 else
293 {
294 MinX = sOther.MinX;
295 MaxX = sOther.MaxX;
296 MinY = sOther.MinY;
297 MaxY = sOther.MaxY;
298 MinZ = sOther.MinZ;
299 MaxZ = sOther.MaxZ;
300 }
301 }
302 else
303 {
304 *this = OGREnvelope3D();
305 }
306 }
307
310 int Intersects(OGREnvelope3D const &other) const
311 {
312 return MinX <= other.MaxX && MaxX >= other.MinX &&
313 MinY <= other.MaxY && MaxY >= other.MinY &&
314 MinZ <= other.MaxZ && MaxZ >= other.MinZ;
315 }
316
318 int Contains(OGREnvelope3D const &other) const
319 {
320 return MinX <= other.MinX && MinY <= other.MinY &&
321 MaxX >= other.MaxX && MaxY >= other.MaxY &&
322 MinZ <= other.MinZ && MaxZ >= other.MaxZ;
323 }
324 };
325
326} // extern "C++"
327
328#else
329 typedef struct
330{
331 double MinX;
332 double MaxX;
333 double MinY;
334 double MaxY;
335 double MinZ;
336 double MaxZ;
337} OGREnvelope3D;
338#endif
339
340 CPL_C_START
341
343 void CPL_DLL *OGRMalloc(size_t) CPL_WARN_DEPRECATED("Use CPLMalloc instead.");
344 void CPL_DLL *OGRCalloc(size_t, size_t)
345 CPL_WARN_DEPRECATED("Use CPLCalloc instead.");
346 void CPL_DLL *OGRRealloc(void *, size_t)
347 CPL_WARN_DEPRECATED("Use CPLRealloc instead.");
348 char CPL_DLL *OGRStrdup(const char *)
349 CPL_WARN_DEPRECATED("Use CPLStrdup instead.");
350 void CPL_DLL OGRFree(void *) CPL_WARN_DEPRECATED("Use CPLFree instead.");
353#ifdef STRICT_OGRERR_TYPE
355 typedef enum
356{
357 OGRERR_NONE,
358 OGRERR_NOT_ENOUGH_DATA,
359 OGRERR_NOT_ENOUGH_MEMORY,
360 OGRERR_UNSUPPORTED_GEOMETRY_TYPE,
361 OGRERR_UNSUPPORTED_OPERATION,
362 OGRERR_CORRUPT_DATA,
363 OGRERR_FAILURE,
364 OGRERR_UNSUPPORTED_SRS,
365 OGRERR_INVALID_HANDLE,
366 OGRERR_NON_EXISTING_FEATURE
367} OGRErr;
368#else
370 typedef int OGRErr;
371
372#define OGRERR_NONE 0
373#define OGRERR_NOT_ENOUGH_DATA 1
374#define OGRERR_NOT_ENOUGH_MEMORY 2
375#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE 3
376#define OGRERR_UNSUPPORTED_OPERATION 4
377#define OGRERR_CORRUPT_DATA 5
378#define OGRERR_FAILURE 6
379#define OGRERR_UNSUPPORTED_SRS 7
380#define OGRERR_INVALID_HANDLE 8
381#define OGRERR_NON_EXISTING_FEATURE 9
383#endif
384
386 typedef int OGRBoolean;
387
388/* -------------------------------------------------------------------- */
389/* ogr_geometry.h related definitions. */
390/* -------------------------------------------------------------------- */
391
392#if defined(HAVE_GCC_DIAGNOSTIC_PUSH) && __STDC_VERSION__ < 202311L
393/* wkbPoint25D and friends cause warnings with -Wpedantic prior to C23. */
394/* Cf https://github.com/OSGeo/gdal/issues/2322 */
395#pragma GCC diagnostic push
396#pragma GCC diagnostic ignored "-Wpedantic"
397#endif
398
404 typedef enum
405{
406 wkbUnknown = 0,
408 wkbPoint = 1,
409 wkbLineString = 2,
411 wkbPolygon = 3,
414 wkbMultiPoint = 4,
415 wkbMultiLineString =
416 5,
417 wkbMultiPolygon = 6,
418 wkbGeometryCollection = 7,
421 wkbCircularString = 8,
423 wkbCompoundCurve = 9,
425 wkbCurvePolygon = 10,
428 wkbMultiCurve = 11,
430 wkbMultiSurface = 12,
432 wkbCurve = 13,
433 wkbSurface = 14,
434 wkbPolyhedralSurface =
435 15,
437 wkbTIN = 16,
439 wkbTriangle = 17,
441 wkbNone = 100,
442 wkbLinearRing = 101,
444 wkbCircularStringZ = 1008,
446 wkbCompoundCurveZ = 1009,
448 wkbCurvePolygonZ = 1010,
450 wkbMultiCurveZ = 1011,
452 wkbMultiSurfaceZ = 1012,
454 wkbCurveZ = 1013,
455 wkbSurfaceZ = 1014,
457 wkbPolyhedralSurfaceZ = 1015,
458 wkbTINZ = 1016,
459 wkbTriangleZ = 1017,
461 wkbPointM = 2001,
462 wkbLineStringM = 2002,
463 wkbPolygonM = 2003,
464 wkbMultiPointM = 2004,
465 wkbMultiLineStringM = 2005,
466 wkbMultiPolygonM = 2006,
467 wkbGeometryCollectionM = 2007,
468 wkbCircularStringM = 2008,
469 wkbCompoundCurveM = 2009,
470 wkbCurvePolygonM = 2010,
471 wkbMultiCurveM = 2011,
472 wkbMultiSurfaceM = 2012,
473 wkbCurveM = 2013,
474 wkbSurfaceM = 2014,
475 wkbPolyhedralSurfaceM = 2015,
476 wkbTINM = 2016,
477 wkbTriangleM = 2017,
479 wkbPointZM = 3001,
480 wkbLineStringZM = 3002,
481 wkbPolygonZM = 3003,
482 wkbMultiPointZM = 3004,
483 wkbMultiLineStringZM = 3005,
484 wkbMultiPolygonZM = 3006,
485 wkbGeometryCollectionZM = 3007,
486 wkbCircularStringZM = 3008,
487 wkbCompoundCurveZM = 3009,
488 wkbCurvePolygonZM = 3010,
489 wkbMultiCurveZM = 3011,
490 wkbMultiSurfaceZM = 3012,
491 wkbCurveZM = 3013,
492 wkbSurfaceZM = 3014,
493 wkbPolyhedralSurfaceZM = 3015,
494 wkbTINZM = 3016,
495 wkbTriangleZM = 3017,
497#if defined(DOXYGEN_SKIP)
498 // Sphinx doesn't like 0x8000000x constants
499 wkbPoint25D = -2147483647,
500 wkbLineString25D = -2147483646,
501 wkbPolygon25D = -2147483645,
502 wkbMultiPoint25D = -2147483644,
503 wkbMultiLineString25D = -2147483643,
504 wkbMultiPolygon25D = -2147483642,
505 wkbGeometryCollection25D = -2147483641
506#else
507 wkbPoint25D = 0x80000001,
508 wkbLineString25D = 0x80000002,
509 wkbPolygon25D = 0x80000003,
510 wkbMultiPoint25D = 0x80000004,
511 wkbMultiLineString25D = 0x80000005,
512 wkbMultiPolygon25D = 0x80000006,
513 wkbGeometryCollection25D = 0x80000007
514#endif
515} OGRwkbGeometryType;
516
517#if defined(HAVE_GCC_DIAGNOSTIC_PUSH) && __STDC_VERSION__ < 202311L
518#pragma GCC diagnostic pop
519#endif
520
521/* clang-format off */
537/* clang-format on */
538
539 typedef enum
540{
541 wkbVariantOldOgc,
542 wkbVariantIso,
544 wkbVariantPostGIS1
546} OGRwkbVariant;
547
548#ifndef GDAL_COMPILATION
550#define wkb25DBit 0x80000000
551#endif
552
553#ifndef __cplusplus
555#define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x))
556#else
558#define wkbFlatten(x) OGR_GT_Flatten(static_cast<OGRwkbGeometryType>(x))
559#endif
560
563#define wkbHasZ(x) (OGR_GT_HasZ(x) != 0)
564
567#define wkbSetZ(x) OGR_GT_SetZ(x)
568
571#define wkbHasM(x) (OGR_GT_HasM(x) != 0)
572
576#define wkbSetM(x) OGR_GT_SetM(x)
577
578#ifndef DOXYGEN_SKIP
579#define ogrZMarker 0x21125711
580#endif
581
582 const char CPL_DLL *OGRGeometryTypeToName(OGRwkbGeometryType eType);
583 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypes(OGRwkbGeometryType eMain,
584 OGRwkbGeometryType eExtra);
585 OGRwkbGeometryType CPL_DLL OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain,
586 OGRwkbGeometryType eExtra,
587 int bAllowPromotingToCurves);
588 OGRwkbGeometryType CPL_DLL OGR_GT_Flatten(OGRwkbGeometryType eType);
589 OGRwkbGeometryType CPL_DLL OGR_GT_SetZ(OGRwkbGeometryType eType);
590 OGRwkbGeometryType CPL_DLL OGR_GT_SetM(OGRwkbGeometryType eType);
591 OGRwkbGeometryType CPL_DLL OGR_GT_SetModifier(OGRwkbGeometryType eType,
592 int bSetZ, int bSetM);
593 int CPL_DLL OGR_GT_HasZ(OGRwkbGeometryType eType);
594 int CPL_DLL OGR_GT_HasM(OGRwkbGeometryType eType);
595 int CPL_DLL OGR_GT_IsSubClassOf(OGRwkbGeometryType eType,
596 OGRwkbGeometryType eSuperType);
597 int CPL_DLL OGR_GT_IsCurve(OGRwkbGeometryType);
598 int CPL_DLL OGR_GT_IsSurface(OGRwkbGeometryType);
599 int CPL_DLL OGR_GT_IsNonLinear(OGRwkbGeometryType);
600 OGRwkbGeometryType CPL_DLL OGR_GT_GetCollection(OGRwkbGeometryType eType);
601 OGRwkbGeometryType CPL_DLL OGR_GT_GetSingle(OGRwkbGeometryType eType);
602 OGRwkbGeometryType CPL_DLL OGR_GT_GetCurve(OGRwkbGeometryType eType);
603 OGRwkbGeometryType CPL_DLL OGR_GT_GetLinear(OGRwkbGeometryType eType);
604
606 typedef enum
607{
608 wkbXDR = 0,
609 wkbNDR = 1
610} OGRwkbByteOrder;
611
612#ifndef DOXYGEN_SKIP
613
614#ifndef NO_HACK_FOR_IBM_DB2_V72
615#define HACK_FOR_IBM_DB2_V72
616#endif
617
618#ifdef HACK_FOR_IBM_DB2_V72
619#define DB2_V72_FIX_BYTE_ORDER(x) ((((x)&0x31) == (x)) ? ((x)&0x1) : (x))
620#define DB2_V72_UNFIX_BYTE_ORDER(x) \
621 CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER \
622 ? ((x) | 0x30) \
623 : (x))
624#else
625#define DB2_V72_FIX_BYTE_ORDER(x) (x)
626#define DB2_V72_UNFIX_BYTE_ORDER(x) (x)
627#endif
628
629#endif /* #ifndef DOXYGEN_SKIP */
630
634#define ALTER_NAME_FLAG 0x1
635
639#define ALTER_TYPE_FLAG 0x2
640
644#define ALTER_WIDTH_PRECISION_FLAG 0x4
645
649#define ALTER_NULLABLE_FLAG 0x8
650
654#define ALTER_DEFAULT_FLAG 0x10
655
660#define ALTER_UNIQUE_FLAG 0x20
661
666#define ALTER_DOMAIN_FLAG 0x40
667
672#define ALTER_ALTERNATIVE_NAME_FLAG 0x80
673
678#define ALTER_COMMENT_FLAG 0x100
679
683#define ALTER_ALL_FLAG \
684 (ALTER_NAME_FLAG | ALTER_TYPE_FLAG | ALTER_WIDTH_PRECISION_FLAG | \
685 ALTER_NULLABLE_FLAG | ALTER_DEFAULT_FLAG | ALTER_UNIQUE_FLAG | \
686 ALTER_DOMAIN_FLAG | ALTER_ALTERNATIVE_NAME_FLAG | ALTER_COMMENT_FLAG)
687
692#define ALTER_GEOM_FIELD_DEFN_NAME_FLAG 0x1000
693
698#define ALTER_GEOM_FIELD_DEFN_TYPE_FLAG 0x2000
699
704#define ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG 0x4000
705
710#define ALTER_GEOM_FIELD_DEFN_SRS_FLAG 0x8000
711
716#define ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG 0x10000
717
722#define ALTER_GEOM_FIELD_DEFN_ALL_FLAG \
723 (ALTER_GEOM_FIELD_DEFN_NAME_FLAG | ALTER_GEOM_FIELD_DEFN_TYPE_FLAG | \
724 ALTER_GEOM_FIELD_DEFN_NULLABLE_FLAG | ALTER_GEOM_FIELD_DEFN_SRS_FLAG | \
725 ALTER_GEOM_FIELD_DEFN_SRS_COORD_EPOCH_FLAG)
726
730#define OGR_F_VAL_NULL 0x00000001
731
735#define OGR_F_VAL_GEOM_TYPE 0x00000002
736
740#define OGR_F_VAL_WIDTH 0x00000004
741
747#define OGR_F_VAL_ALLOW_NULL_WHEN_DEFAULT 0x00000008
748
754#define OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM 0x00000010
755
759#define OGR_F_VAL_ALL (0x7FFFFFFF & ~OGR_F_VAL_ALLOW_DIFFERENT_GEOM_DIM)
760
761/************************************************************************/
762/* ogr_feature.h related definitions. */
763/************************************************************************/
764
771 typedef enum
772{
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,
787 OFTMaxType = 13
788} OGRFieldType;
789
798 typedef enum
799{
OFSTNone = 0,
802 OFSTBoolean = 1,
804 OFSTInt16 = 2,
807 OFSTFloat32 = 3,
810 OFSTJSON = 4,
814 OFSTUUID = 5,
815 OFSTMaxSubType = 5
816} OGRFieldSubType;
817
822 typedef enum
823{
824 OJUndefined = 0,
825 OJLeft = 1,
826 OJRight = 2
827} OGRJustification;
828
830#define OGRNullFID -1
831
832/* Special value for an unknown field type. This should only be used
833 * while reading a file. At the end of file any unknown types should
834 * be set to OFTString.
835 */
837#define OGRUnknownType static_cast<OGRFieldType>(-1)
845#define OGRUnsetMarker -21121
846
852#define OGRNullMarker -21122
853
858#define OGR_TZFLAG_UNKNOWN 0
859
861#define OGR_TZFLAG_LOCALTIME 1
862
867#define OGR_TZFLAG_MIXED_TZ 2
868
875#define OGR_TZFLAG_UTC 100
876
877/************************************************************************/
878/* OGRField */
879/************************************************************************/
880
885 typedef union
886{
888 int Integer;
889 GIntBig Integer64;
890 double Real;
891 char *String;
892
893 struct
894 {
895 int nCount;
896 int *paList;
897 } IntegerList;
898
899 struct
900 {
901 int nCount;
902 GIntBig *paList;
903 } Integer64List;
904
905 struct
906 {
907 int nCount;
908 double *paList;
909 } RealList;
910
911 struct
912 {
913 int nCount;
914 char **paList;
915 } StringList;
916
917 struct
918 {
919 int nCount;
920 GByte *paData;
921 } Binary;
922
923 struct
924 {
925 int nMarker1;
926 int nMarker2;
927 int nMarker3;
928 } Set;
929
930 struct
931 {
932 GInt16 Year;
933 GByte Month;
934 GByte Day;
935 GByte Hour;
936 GByte Minute;
937 GByte TZFlag; /* 0=unknown, 1=localtime(ambiguous),
938 100=GMT, 104=GMT+1, 80=GMT-5, etc */
939 GByte Reserved; /* must be set to 0 */
940 float Second; /* with millisecond accuracy. at the end of the structure,
941 so as to keep it 12 bytes on 32 bit */
942 } Date;
943
945} OGRField;
946
948 int CPL_DLL OGR_GET_MS(float fSec);
949
951#define OGRPARSEDATE_OPTION_LAX 1
952
953 int CPL_DLL OGRParseDate(const char *pszInput, OGRField *psOutput,
954 int nOptions);
955
956/* -------------------------------------------------------------------- */
957/* Constants from ogrsf_frmts.h for capabilities. */
958/* -------------------------------------------------------------------- */
959#define OLCRandomRead "RandomRead"
960#define OLCSequentialWrite \
961 "SequentialWrite"
962#define OLCRandomWrite "RandomWrite"
963#define OLCFastSpatialFilter \
964 "FastSpatialFilter"
965#define OLCFastFeatureCount \
966 "FastFeatureCount"
968#define OLCFastGetExtent \
969 "FastGetExtent"
970#define OLCFastGetExtent3D \
971 "FastGetExtent3D"
972#define OLCCreateField \
973 "CreateField"
975#define OLCDeleteField \
976 "DeleteField"
978#define OLCReorderFields \
979 "ReorderFields"
980#define OLCAlterFieldDefn \
981 "AlterFieldDefn"
982#define OLCAlterGeomFieldDefn \
983 "AlterGeomFieldDefn"
985#define OLCTransactions \
986 "Transactions"
988#define OLCDeleteFeature \
989 "DeleteFeature"
990#define OLCUpsertFeature \
991 "UpsertFeature"
992#define OLCUpdateFeature \
993 "UpdateFeature"
995#define OLCFastSetNextByIndex \
996 "FastSetNextByIndex"
998#define OLCStringsAsUTF8 \
999 "StringsAsUTF8"
1001#define OLCIgnoreFields \
1002 "IgnoreFields"
1003#define OLCCreateGeomField \
1004 "CreateGeomField"
1005#define OLCCurveGeometries \
1006 "CurveGeometries"
1007#define OLCMeasuredGeometries \
1008 "MeasuredGeometries"
1010#define OLCZGeometries \
1011 "ZGeometries"
1013#define OLCRename \
1014 "Rename"
1015#define OLCFastGetArrowStream \
1016 "FastGetArrowStream"
1018#define OLCFastWriteArrowBatch \
1019 "FastWriteArrowBatch"
1022#define ODsCCreateLayer \
1023 "CreateLayer"
1024#define ODsCDeleteLayer \
1025 "DeleteLayer"
1026/* Reserved: "RenameLayer" */
1027#define ODsCCreateGeomFieldAfterCreateLayer \
1028 "CreateGeomFieldAfterCreateLayer"
1030#define ODsCCurveGeometries \
1031 "CurveGeometries"
1032#define ODsCTransactions \
1033 "Transactions"
1034#define ODsCEmulatedTransactions \
1035 "EmulatedTransactions"
1037#define ODsCMeasuredGeometries \
1038 "MeasuredGeometries"
1040#define ODsCZGeometries \
1041 "ZGeometries"
1043#define ODsCRandomLayerRead \
1044 "RandomLayerRead"
1046/* Note the unfortunate trailing space at the end of the string */
1047#define ODsCRandomLayerWrite \
1048 "RandomLayerWrite "
1050#define ODsCAddFieldDomain \
1051 "AddFieldDomain"
1053#define ODsCDeleteFieldDomain \
1054 "DeleteFieldDomain"
1056#define ODsCUpdateFieldDomain \
1057 "UpdateFieldDomain"
1060#define ODrCCreateDataSource \
1061 "CreateDataSource"
1062#define ODrCDeleteDataSource \
1063 "DeleteDataSource"
1065/* -------------------------------------------------------------------- */
1066/* Layer metadata items. */
1067/* -------------------------------------------------------------------- */
1071#define OLMD_FID64 "OLMD_FID64"
1072
1073/************************************************************************/
1074/* ogr_featurestyle.h related definitions. */
1075/************************************************************************/
1076
1081 typedef enum ogr_style_tool_class_id
1082{
1083 OGRSTCNone = 0,
1084 OGRSTCPen = 1,
1085 OGRSTCBrush = 2,
1086 OGRSTCSymbol = 3,
1087 OGRSTCLabel = 4,
1088 OGRSTCVector = 5
1089} OGRSTClassId;
1090
1094 typedef enum ogr_style_tool_units_id
1095{
1096 OGRSTUGround = 0,
1097 OGRSTUPixel = 1,
1098 OGRSTUPoints = 2,
1099 OGRSTUMM = 3,
1100 OGRSTUCM = 4,
1101 OGRSTUInches = 5
1102} OGRSTUnitId;
1103
1107 typedef enum ogr_style_tool_param_pen_id
1108{
1109 OGRSTPenColor = 0,
1110 OGRSTPenWidth = 1,
1111 OGRSTPenPattern = 2,
1112 OGRSTPenId = 3,
1113 OGRSTPenPerOffset = 4,
1114 OGRSTPenCap = 5,
1115 OGRSTPenJoin = 6,
1116 OGRSTPenPriority = 7,
1117#ifndef DOXYGEN_SKIP
1118 OGRSTPenLast = 8
1119#endif
1120} OGRSTPenParam;
1121
1125 typedef enum ogr_style_tool_param_brush_id
1126{
1127 OGRSTBrushFColor = 0,
1128 OGRSTBrushBColor = 1,
1129 OGRSTBrushId = 2,
1130 OGRSTBrushAngle = 3,
1131 OGRSTBrushSize = 4,
1132 OGRSTBrushDx = 5,
1133 OGRSTBrushDy = 6,
1134 OGRSTBrushPriority = 7,
1135#ifndef DOXYGEN_SKIP
1136 OGRSTBrushLast = 8
1137#endif
1138
1139} OGRSTBrushParam;
1140
1144 typedef enum ogr_style_tool_param_symbol_id
1145{
1146 OGRSTSymbolId = 0,
1147 OGRSTSymbolAngle = 1,
1148 OGRSTSymbolColor = 2,
1149 OGRSTSymbolSize = 3,
1150 OGRSTSymbolDx = 4,
1151 OGRSTSymbolDy = 5,
1152 OGRSTSymbolStep = 6,
1153 OGRSTSymbolPerp = 7,
1154 OGRSTSymbolOffset = 8,
1155 OGRSTSymbolPriority = 9,
1156 OGRSTSymbolFontName = 10,
1157 OGRSTSymbolOColor = 11,
1158#ifndef DOXYGEN_SKIP
1159 OGRSTSymbolLast = 12
1160#endif
1161} OGRSTSymbolParam;
1162
1166 typedef enum ogr_style_tool_param_label_id
1167{
1168 OGRSTLabelFontName = 0,
1169 OGRSTLabelSize = 1,
1170 OGRSTLabelTextString = 2,
1171 OGRSTLabelAngle = 3,
1172 OGRSTLabelFColor = 4,
1173 OGRSTLabelBColor = 5,
1174 OGRSTLabelPlacement = 6,
1175 OGRSTLabelAnchor = 7,
1176 OGRSTLabelDx = 8,
1177 OGRSTLabelDy = 9,
1178 OGRSTLabelPerp = 10,
1179 OGRSTLabelBold = 11,
1180 OGRSTLabelItalic = 12,
1181 OGRSTLabelUnderline = 13,
1182 OGRSTLabelPriority = 14,
1183 OGRSTLabelStrikeout = 15,
1184 OGRSTLabelStretch = 16,
1185 OGRSTLabelAdjHor = 17,
1186 OGRSTLabelAdjVert = 18,
1187 OGRSTLabelHColor = 19,
1188 OGRSTLabelOColor = 20,
1189#ifndef DOXYGEN_SKIP
1190 OGRSTLabelLast = 21
1191#endif
1192} OGRSTLabelParam;
1193
1194/* -------------------------------------------------------------------- */
1195/* Field domains */
1196/* -------------------------------------------------------------------- */
1197
1202 typedef struct
1203{
1205 char *pszCode;
1206
1208 char *pszValue;
1209} OGRCodedValue;
1210
1215 typedef enum
1216{
1218 OFDT_CODED,
1220 OFDT_RANGE,
1222 OFDT_GLOB
1223} OGRFieldDomainType;
1224
1232 typedef enum
1233{
1235 OFDSP_DEFAULT_VALUE,
1237 OFDSP_DUPLICATE,
1240 OFDSP_GEOMETRY_RATIO
1241} OGRFieldDomainSplitPolicy;
1242
1250 typedef enum
1251{
1253 OFDMP_DEFAULT_VALUE,
1255 OFDMP_SUM,
1257 OFDMP_GEOMETRY_WEIGHTED
1258} OGRFieldDomainMergePolicy;
1259
1260/* ------------------------------------------------------------------- */
1261/* Version checking */
1262/* -------------------------------------------------------------------- */
1263
1264#ifndef DOXYGEN_SKIP
1265
1266/* Note to developers : please keep this section in sync with gdal.h */
1267
1268#ifndef GDAL_VERSION_INFO_DEFINED
1269#define GDAL_VERSION_INFO_DEFINED
1270 const char CPL_DLL *CPL_STDCALL GDALVersionInfo(const char *);
1271#endif
1272
1273#ifndef GDAL_CHECK_VERSION
1274
1287 int CPL_DLL CPL_STDCALL GDALCheckVersion(int nVersionMajor, int nVersionMinor,
1288 const char *pszCallingComponentName);
1289
1291#define GDAL_CHECK_VERSION(pszCallingComponentName) \
1292 GDALCheckVersion(GDAL_VERSION_MAJOR, GDAL_VERSION_MINOR, \
1293 pszCallingComponentName)
1294
1295#endif
1296
1297#endif /* #ifndef DOXYGEN_SKIP */
1298
1299 CPL_C_END
1300
1301#endif /* ndef OGR_CORE_H_INCLUDED */
OGREnvelope3D
Simple container for a bounding region in 3D.
Definition ogr_core.h:199
OGREnvelope3D::Merge
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:257
OGREnvelope3D::Merge
void Merge(OGREnvelope3D const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:245
OGREnvelope3D::IsInit
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:235
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:267
OGREnvelope3D::Intersects
int Intersects(OGREnvelope3D const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:310
OGREnvelope3D::MaxZ
double MaxZ
Maximum Z value.
Definition ogr_core.h:227
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:218
OGREnvelope3D::MinZ
double MinZ
Minimum Z value.
Definition ogr_core.h:224
OGREnvelope3D::OGREnvelope3D
OGREnvelope3D()
Default constructor.
Definition ogr_core.h:202
OGREnvelope3D::Contains
int Contains(OGREnvelope3D const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:318
OGREnvelope3D::Intersect
void Intersect(OGREnvelope3D const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:279
OGREnvelope3D::OGREnvelope3D
OGREnvelope3D(const OGREnvelope3D &oOther)
Copy constructor.
Definition ogr_core.h:209
OGREnvelope
Simple container for a bounding region (rectangle)
Definition ogr_core.h:44
OGREnvelope::Contains
int Contains(OGREnvelope const &other) const
Return whether the current object contains the other rectangle.
Definition ogr_core.h:148
OGREnvelope::MinY
double MinY
Minimum Y value.
Definition ogr_core.h:72
OGREnvelope::operator!=
bool operator!=(const OGREnvelope &other) const
Return whether the current rectangle is not equal to the other rectangle.
Definition ogr_core.h:172
OGREnvelope::MaxX
double MaxX
Maximum X value.
Definition ogr_core.h:69
OGREnvelope::Intersect
void Intersect(OGREnvelope const &sOther)
Update the current object by computing its intersection with the other rectangle.
Definition ogr_core.h:114
OGREnvelope::MinX
double MinX
Minimum X value.
Definition ogr_core.h:66
OGREnvelope::OGREnvelope
OGREnvelope()
Default constructor.
Definition ogr_core.h:47
OGREnvelope::MaxY
double MaxY
Maximum Y value.
Definition ogr_core.h:75
OGREnvelope::IsInit
int IsInit() const
Return whether the object has been initialized, that is, is non empty.
Definition ogr_core.h:83
OGREnvelope::Intersects
int Intersects(OGREnvelope const &other) const
Return whether the current object intersects with the other rectangle.
Definition ogr_core.h:141
OGREnvelope::Merge
void Merge(double dfX, double dfY)
Update the current object by computing its union with the provided point.
Definition ogr_core.h:104
OGREnvelope::operator==
bool operator==(const OGREnvelope &other) const
Return whether the current rectangle is equal to the other rectangle.
Definition ogr_core.h:156
OGREnvelope::operator=
OGREnvelope & operator=(const OGREnvelope &)=default
Assignment operator.
OGREnvelope::OGREnvelope
OGREnvelope(const OGREnvelope &oOther)
Copy constructor.
Definition ogr_core.h:56
OGREnvelope::Merge
void Merge(OGREnvelope const &sOther)
Update the current object by computing its union with the other rectangle.
Definition ogr_core.h:94
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:362
GInt16
short GInt16
Int16 type.
Definition cpl_port.h:171
CPL_C_END
#define CPL_C_END
Macro to end a block of C symbols.
Definition cpl_port.h:289
CPL_C_START
#define CPL_C_START
Macro to start a block of C symbols.
Definition cpl_port.h:285
GByte
unsigned char GByte
Unsigned byte type.
Definition cpl_port.h:175
GIntBig
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition cpl_port.h:205
MAX
#define MAX(a, b)
Macro to compute the maximum of 2 values.
Definition cpl_port.h:364
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:3045
GDALVersionInfo
const char * GDALVersionInfo(const char *)
Get runtime version information.
Definition gdal_misc.cpp:2847
OGRMergeGeometryTypesEx
OGRwkbGeometryType OGRMergeGeometryTypesEx(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra, int bAllowPromotingToCurves)
Find common geometry type.
Definition ogrgeometry.cpp:2960
OGRERR_NOT_ENOUGH_MEMORY
#define OGRERR_NOT_ENOUGH_MEMORY
Not enough memory.
Definition ogr_core.h:374
OGR_GT_HasM
int OGR_GT_HasM(OGRwkbGeometryType eType)
Return if the geometry type is a measured type.
Definition ogrgeometry.cpp:7694
OGR_GT_IsSurface
int OGR_GT_IsSurface(OGRwkbGeometryType)
Return if a geometry type is an instance of Surface.
Definition ogrgeometry.cpp:8077
OGRBoolean
int OGRBoolean
Type for a OGR boolean.
Definition ogr_core.h:386
OGRFieldSubType
OGRFieldSubType
List of field subtypes.
Definition ogr_core.h:799
OFSTBoolean
@ OFSTBoolean
Boolean integer.
Definition ogr_core.h:802
OFSTInt16
@ OFSTInt16
Signed 16-bit integer.
Definition ogr_core.h:804
OFSTUUID
@ OFSTUUID
UUID string representation.
Definition ogr_core.h:814
OFSTJSON
@ OFSTJSON
JSON content.
Definition ogr_core.h:810
OFSTNone
@ OFSTNone
No subtype.
Definition ogr_core.h:800
OFSTFloat32
@ OFSTFloat32
Single precision (32 bit) floating point.
Definition ogr_core.h:807
ogr_style_tool_param_symbol_id
ogr_style_tool_param_symbol_id
List of parameters for use with OGRStyleSymbol.
Definition ogr_core.h:1145
OGRSTSymbolDy
@ OGRSTSymbolDy
Dy.
Definition ogr_core.h:1151
OGRSTSymbolId
@ OGRSTSymbolId
Id.
Definition ogr_core.h:1146
OGRSTSymbolSize
@ OGRSTSymbolSize
Size.
Definition ogr_core.h:1149
OGRSTSymbolFontName
@ OGRSTSymbolFontName
Font name.
Definition ogr_core.h:1156
OGRSTSymbolColor
@ OGRSTSymbolColor
Color.
Definition ogr_core.h:1148
OGRSTSymbolDx
@ OGRSTSymbolDx
Dx.
Definition ogr_core.h:1150
OGRSTSymbolPerp
@ OGRSTSymbolPerp
Perpendicular.
Definition ogr_core.h:1153
OGRSTSymbolAngle
@ OGRSTSymbolAngle
Angle.
Definition ogr_core.h:1147
OGRSTSymbolOColor
@ OGRSTSymbolOColor
Outline color.
Definition ogr_core.h:1157
OGRSTSymbolPriority
@ OGRSTSymbolPriority
Priority.
Definition ogr_core.h:1155
OGRSTSymbolStep
@ OGRSTSymbolStep
Step.
Definition ogr_core.h:1152
OGRSTSymbolOffset
@ OGRSTSymbolOffset
Offset.
Definition ogr_core.h:1154
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:1251
OFDMP_SUM
@ OFDMP_SUM
Sum.
Definition ogr_core.h:1255
OFDMP_GEOMETRY_WEIGHTED
@ OFDMP_GEOMETRY_WEIGHTED
New values are computed as the weighted average of the source values.
Definition ogr_core.h:1257
OFDMP_DEFAULT_VALUE
@ OFDMP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1253
OGRwkbByteOrder
OGRwkbByteOrder
Enumeration to describe byte order.
Definition ogr_core.h:607
wkbXDR
@ wkbXDR
MSB/Sun/Motorola: Most Significant Byte First
Definition ogr_core.h:608
wkbNDR
@ wkbNDR
LSB/Intel/Vax: Least Significant Byte First
Definition ogr_core.h:609
OGRParseDate
int OGRParseDate(const char *pszInput, OGRField *psOutput, int nOptions)
Parse date string.
Definition ogrutils.cpp:1072
OGRERR_UNSUPPORTED_GEOMETRY_TYPE
#define OGRERR_UNSUPPORTED_GEOMETRY_TYPE
Unsupported geometry type.
Definition ogr_core.h:375
OGRFieldDomainType
OGRFieldDomainType
Type of field domain.
Definition ogr_core.h:1216
OFDT_RANGE
@ OFDT_RANGE
Range (min/max)
Definition ogr_core.h:1220
OFDT_CODED
@ OFDT_CODED
Coded.
Definition ogr_core.h:1218
OFDT_GLOB
@ OFDT_GLOB
Glob (used by GeoPackage)
Definition ogr_core.h:1222
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:8016
OGR_GT_IsCurve
int OGR_GT_IsCurve(OGRwkbGeometryType)
Return if a geometry type is an instance of Curve.
Definition ogrgeometry.cpp:8057
OGR_GT_SetZ
OGRwkbGeometryType OGR_GT_SetZ(OGRwkbGeometryType eType)
Returns the 3D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:7716
OGRERR_FAILURE
#define OGRERR_FAILURE
Failure.
Definition ogr_core.h:378
OGRERR_UNSUPPORTED_OPERATION
#define OGRERR_UNSUPPORTED_OPERATION
Unsupported operation.
Definition ogr_core.h:376
OGRwkbVariant
OGRwkbVariant
Output variants of WKB we support.
Definition ogr_core.h:540
wkbVariantPostGIS1
@ wkbVariantPostGIS1
PostGIS 1.X has different codes for CurvePolygon, MultiCurve and MultiSurface.
Definition ogr_core.h:544
wkbVariantOldOgc
@ wkbVariantOldOgc
Old-style 99-402 extended dimension (Z) WKB types.
Definition ogr_core.h:541
wkbVariantIso
@ wkbVariantIso
SFSQL 1.2 and ISO SQL/MM Part 3 extended dimension (Z&M) WKB types.
Definition ogr_core.h:542
OGRERR_NONE
#define OGRERR_NONE
Success.
Definition ogr_core.h:372
OGRMergeGeometryTypes
OGRwkbGeometryType OGRMergeGeometryTypes(OGRwkbGeometryType eMain, OGRwkbGeometryType eExtra)
Find common geometry type.
Definition ogrgeometry.cpp:2925
OGRJustification
OGRJustification
Display justification for field values.
Definition ogr_core.h:823
OGRFieldType
OGRFieldType
List of feature field types.
Definition ogr_core.h:772
OFTTime
@ OFTTime
Time.
Definition ogr_core.h:783
OFTInteger64List
@ OFTInteger64List
List of signed 64bit integers.
Definition ogr_core.h:786
OFTIntegerList
@ OFTIntegerList
List of signed 32bit integers.
Definition ogr_core.h:774
OFTDate
@ OFTDate
Date.
Definition ogr_core.h:782
OFTWideStringList
@ OFTWideStringList
deprecated
Definition ogr_core.h:780
OFTInteger
@ OFTInteger
Single signed 32bit integer.
Definition ogr_core.h:773
OFTString
@ OFTString
String of ASCII chars.
Definition ogr_core.h:777
OFTBinary
@ OFTBinary
Raw Binary data.
Definition ogr_core.h:781
OFTRealList
@ OFTRealList
List of doubles.
Definition ogr_core.h:776
OFTReal
@ OFTReal
Double Precision floating point.
Definition ogr_core.h:775
OFTStringList
@ OFTStringList
Array of strings.
Definition ogr_core.h:778
OFTDateTime
@ OFTDateTime
Date and Time.
Definition ogr_core.h:784
OFTInteger64
@ OFTInteger64
Single signed 64bit integer.
Definition ogr_core.h:785
OFTWideString
@ OFTWideString
deprecated
Definition ogr_core.h:779
OGR_GT_GetCurve
OGRwkbGeometryType OGR_GT_GetCurve(OGRwkbGeometryType eType)
Returns the curve geometry type that can contain the passed geometry type.
Definition ogrgeometry.cpp:7967
OGRwkbGeometryType
OGRwkbGeometryType
List of well known binary geometry types.
Definition ogr_core.h:405
wkbPolygon25D
@ wkbPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:501
wkbCurve
@ wkbCurve
Curve (abstract type).
Definition ogr_core.h:432
wkbLineString
@ wkbLineString
1-dimensional geometric object with linear interpolation between Points, standard WKB
Definition ogr_core.h:409
wkbCircularString
@ wkbCircularString
one or more circular arc segments connected end to end, ISO SQL/MM Part 3.
Definition ogr_core.h:421
wkbSurfaceZM
@ wkbSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:492
wkbPolygon
@ wkbPolygon
planar 2-dimensional geometric object defined by 1 exterior boundary and 0 or more interior boundarie...
Definition ogr_core.h:411
wkbTriangle
@ wkbTriangle
a Triangle.
Definition ogr_core.h:439
wkbPoint25D
@ wkbPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:499
wkbSurfaceZ
@ wkbSurfaceZ
wkbSurface with Z component.
Definition ogr_core.h:455
wkbMultiSurfaceM
@ wkbMultiSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:472
wkbPolygonZM
@ wkbPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:481
wkbMultiPolygon25D
@ wkbMultiPolygon25D
2.5D extension as per 99-402
Definition ogr_core.h:504
wkbPolyhedralSurfaceM
@ wkbPolyhedralSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:475
wkbTINZM
@ wkbTINZM
ISO SQL/MM Part 3.
Definition ogr_core.h:494
wkbMultiPointZM
@ wkbMultiPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:482
wkbPointM
@ wkbPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:461
wkbMultiLineString
@ wkbMultiLineString
GeometryCollection of LineStrings, standard WKB.
Definition ogr_core.h:415
wkbCompoundCurveM
@ wkbCompoundCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:469
wkbUnknown
@ wkbUnknown
unknown type, non-standard
Definition ogr_core.h:406
wkbMultiSurfaceZM
@ wkbMultiSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:490
wkbTINZ
@ wkbTINZ
ISO SQL/MM Part 3.
Definition ogr_core.h:458
wkbCircularStringM
@ wkbCircularStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:468
wkbPolygonM
@ wkbPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:463
wkbMultiCurveM
@ wkbMultiCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:471
wkbLinearRing
@ wkbLinearRing
non-standard, just for createGeometry()
Definition ogr_core.h:442
wkbLineStringM
@ wkbLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:462
wkbTIN
@ wkbTIN
a PolyhedralSurface consisting only of Triangle patches ISO SQL/MM Part 3.
Definition ogr_core.h:437
wkbGeometryCollection25D
@ wkbGeometryCollection25D
2.5D extension as per 99-402
Definition ogr_core.h:505
wkbSurfaceM
@ wkbSurfaceM
ISO SQL/MM Part 3.
Definition ogr_core.h:474
wkbCurvePolygonM
@ wkbCurvePolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:470
wkbPolyhedralSurface
@ wkbPolyhedralSurface
a contiguous collection of polygons, which share common boundary segments, ISO SQL/MM Part 3.
Definition ogr_core.h:434
wkbSurface
@ wkbSurface
Surface (abstract type).
Definition ogr_core.h:433
wkbMultiCurveZ
@ wkbMultiCurveZ
wkbMultiCurve with Z component.
Definition ogr_core.h:450
wkbCircularStringZ
@ wkbCircularStringZ
wkbCircularString with Z component.
Definition ogr_core.h:444
wkbPoint
@ wkbPoint
0-dimensional geometric object, standard WKB
Definition ogr_core.h:408
wkbCompoundCurve
@ wkbCompoundCurve
sequence of contiguous curves, ISO SQL/MM Part 3.
Definition ogr_core.h:423
wkbPolyhedralSurfaceZ
@ wkbPolyhedralSurfaceZ
ISO SQL/MM Part 3.
Definition ogr_core.h:457
wkbGeometryCollection
@ wkbGeometryCollection
geometric object that is a collection of 1 or more geometric objects, standard WKB
Definition ogr_core.h:418
wkbMultiPolygon
@ wkbMultiPolygon
GeometryCollection of Polygons, standard WKB.
Definition ogr_core.h:417
wkbMultiPoint
@ wkbMultiPoint
GeometryCollection of Points, standard WKB.
Definition ogr_core.h:414
wkbMultiLineStringM
@ wkbMultiLineStringM
ISO SQL/MM Part 3.
Definition ogr_core.h:465
wkbMultiCurveZM
@ wkbMultiCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:489
wkbMultiPoint25D
@ wkbMultiPoint25D
2.5D extension as per 99-402
Definition ogr_core.h:502
wkbNone
@ wkbNone
non-standard, for pure attribute records
Definition ogr_core.h:441
wkbMultiPointM
@ wkbMultiPointM
ISO SQL/MM Part 3.
Definition ogr_core.h:464
wkbCircularStringZM
@ wkbCircularStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:486
wkbCurvePolygonZ
@ wkbCurvePolygonZ
wkbCurvePolygon with Z component.
Definition ogr_core.h:448
wkbCompoundCurveZM
@ wkbCompoundCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:487
wkbTriangleZ
@ wkbTriangleZ
ISO SQL/MM Part 3.
Definition ogr_core.h:459
wkbPointZM
@ wkbPointZM
ISO SQL/MM Part 3.
Definition ogr_core.h:479
wkbCurvePolygon
@ wkbCurvePolygon
planar surface, defined by 1 exterior boundary and zero or more interior boundaries,...
Definition ogr_core.h:425
wkbLineStringZM
@ wkbLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:480
wkbMultiSurface
@ wkbMultiSurface
GeometryCollection of Surfaces, ISO SQL/MM Part 3.
Definition ogr_core.h:430
wkbMultiPolygonM
@ wkbMultiPolygonM
ISO SQL/MM Part 3.
Definition ogr_core.h:466
wkbCurveZM
@ wkbCurveZM
ISO SQL/MM Part 3.
Definition ogr_core.h:491
wkbLineString25D
@ wkbLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:500
wkbMultiLineStringZM
@ wkbMultiLineStringZM
ISO SQL/MM Part 3.
Definition ogr_core.h:483
wkbPolyhedralSurfaceZM
@ wkbPolyhedralSurfaceZM
ISO SQL/MM Part 3.
Definition ogr_core.h:493
wkbGeometryCollectionZM
@ wkbGeometryCollectionZM
ISO SQL/MM Part 3.
Definition ogr_core.h:485
wkbTriangleZM
@ wkbTriangleZM
ISO SQL/MM Part 3.
Definition ogr_core.h:495
wkbGeometryCollectionM
@ wkbGeometryCollectionM
ISO SQL/MM Part 3.
Definition ogr_core.h:467
wkbCurveM
@ wkbCurveM
ISO SQL/MM Part 3.
Definition ogr_core.h:473
wkbMultiLineString25D
@ wkbMultiLineString25D
2.5D extension as per 99-402
Definition ogr_core.h:503
wkbTriangleM
@ wkbTriangleM
ISO SQL/MM Part 3.
Definition ogr_core.h:477
wkbMultiPolygonZM
@ wkbMultiPolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:484
wkbTINM
@ wkbTINM
ISO SQL/MM Part 3.
Definition ogr_core.h:476
wkbCurveZ
@ wkbCurveZ
wkbCurve with Z component.
Definition ogr_core.h:454
wkbCurvePolygonZM
@ wkbCurvePolygonZM
ISO SQL/MM Part 3.
Definition ogr_core.h:488
wkbMultiCurve
@ wkbMultiCurve
GeometryCollection of Curves, ISO SQL/MM Part 3.
Definition ogr_core.h:428
wkbCompoundCurveZ
@ wkbCompoundCurveZ
wkbCompoundCurve with Z component.
Definition ogr_core.h:446
wkbMultiSurfaceZ
@ wkbMultiSurfaceZ
wkbMultiSurface with Z component.
Definition ogr_core.h:452
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:7765
OGRERR_CORRUPT_DATA
#define OGRERR_CORRUPT_DATA
Corrupt data.
Definition ogr_core.h:377
ogr_style_tool_param_label_id
ogr_style_tool_param_label_id
List of parameters for use with OGRStyleLabel.
Definition ogr_core.h:1167
OGRSTLabelUnderline
@ OGRSTLabelUnderline
Underline.
Definition ogr_core.h:1181
OGRSTLabelPriority
@ OGRSTLabelPriority
Priority.
Definition ogr_core.h:1182
OGRSTLabelAdjVert
@ OGRSTLabelAdjVert
OBSOLETE; do not use.
Definition ogr_core.h:1186
OGRSTLabelBold
@ OGRSTLabelBold
Bold.
Definition ogr_core.h:1179
OGRSTLabelStrikeout
@ OGRSTLabelStrikeout
Strike out.
Definition ogr_core.h:1183
OGRSTLabelBColor
@ OGRSTLabelBColor
Background color.
Definition ogr_core.h:1173
OGRSTLabelPlacement
@ OGRSTLabelPlacement
Placement.
Definition ogr_core.h:1174
OGRSTLabelPerp
@ OGRSTLabelPerp
Perpendicular.
Definition ogr_core.h:1178
OGRSTLabelOColor
@ OGRSTLabelOColor
Outline color.
Definition ogr_core.h:1188
OGRSTLabelDx
@ OGRSTLabelDx
Dx.
Definition ogr_core.h:1176
OGRSTLabelHColor
@ OGRSTLabelHColor
Highlight color.
Definition ogr_core.h:1187
OGRSTLabelItalic
@ OGRSTLabelItalic
Italic.
Definition ogr_core.h:1180
OGRSTLabelTextString
@ OGRSTLabelTextString
Text string.
Definition ogr_core.h:1170
OGRSTLabelSize
@ OGRSTLabelSize
Size.
Definition ogr_core.h:1169
OGRSTLabelAngle
@ OGRSTLabelAngle
Angle.
Definition ogr_core.h:1171
OGRSTLabelFColor
@ OGRSTLabelFColor
Foreground color.
Definition ogr_core.h:1172
OGRSTLabelDy
@ OGRSTLabelDy
Dy.
Definition ogr_core.h:1177
OGRSTLabelFontName
@ OGRSTLabelFontName
Font name.
Definition ogr_core.h:1168
OGRSTLabelStretch
@ OGRSTLabelStretch
Stretch.
Definition ogr_core.h:1184
OGRSTLabelAnchor
@ OGRSTLabelAnchor
Anchor.
Definition ogr_core.h:1175
OGRSTLabelAdjHor
@ OGRSTLabelAdjHor
OBSOLETE; do not use.
Definition ogr_core.h:1185
ogr_style_tool_units_id
ogr_style_tool_units_id
List of units supported by OGRStyleTools.
Definition ogr_core.h:1095
OGRSTUGround
@ OGRSTUGround
Ground unit.
Definition ogr_core.h:1096
OGRSTUMM
@ OGRSTUMM
Millimeter.
Definition ogr_core.h:1099
OGRSTUInches
@ OGRSTUInches
Inch.
Definition ogr_core.h:1101
OGRSTUCM
@ OGRSTUCM
Centimeter.
Definition ogr_core.h:1100
OGRSTUPoints
@ OGRSTUPoints
Points.
Definition ogr_core.h:1098
OGRSTUPixel
@ OGRSTUPixel
Pixel.
Definition ogr_core.h:1097
OGR_GT_IsSubClassOf
int OGR_GT_IsSubClassOf(OGRwkbGeometryType eType, OGRwkbGeometryType eSuperType)
Returns if a type is a subclass of another one.
Definition ogrgeometry.cpp:7791
OGR_GT_GetSingle
OGRwkbGeometryType OGR_GT_GetSingle(OGRwkbGeometryType eType)
Returns the non-collection type that be contained in the passed geometry type.
Definition ogrgeometry.cpp:7914
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:381
OGRGeometryTypeToName
const char * OGRGeometryTypeToName(OGRwkbGeometryType eType)
Fetch a human readable name corresponding to an OGRwkbGeometryType value.
Definition ogrgeometry.cpp:2703
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:380
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:373
OGRErr
int OGRErr
Type for a OGR error.
Definition ogr_core.h:370
OGR_GET_MS
int OGR_GET_MS(float fSec)
Return the number of milliseconds from a datetime with decimal seconds.
Definition ogrutils.cpp:2347
ogr_style_tool_param_brush_id
ogr_style_tool_param_brush_id
List of parameters for use with OGRStyleBrush.
Definition ogr_core.h:1126
OGRSTBrushAngle
@ OGRSTBrushAngle
Angle.
Definition ogr_core.h:1130
OGRSTBrushId
@ OGRSTBrushId
Id.
Definition ogr_core.h:1129
OGRSTBrushPriority
@ OGRSTBrushPriority
Priority.
Definition ogr_core.h:1134
OGRSTBrushBColor
@ OGRSTBrushBColor
Background color.
Definition ogr_core.h:1128
OGRSTBrushSize
@ OGRSTBrushSize
Size.
Definition ogr_core.h:1131
OGRSTBrushDy
@ OGRSTBrushDy
Dy.
Definition ogr_core.h:1133
OGRSTBrushFColor
@ OGRSTBrushFColor
Foreground color.
Definition ogr_core.h:1127
OGRSTBrushDx
@ OGRSTBrushDx
Dx.
Definition ogr_core.h:1132
OGR_GT_GetCollection
OGRwkbGeometryType OGR_GT_GetCollection(OGRwkbGeometryType eType)
Returns the collection type that can contain the passed geometry type.
Definition ogrgeometry.cpp:7854
OGR_GT_SetM
OGRwkbGeometryType OGR_GT_SetM(OGRwkbGeometryType eType)
Returns the measured geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:7739
ogr_style_tool_class_id
ogr_style_tool_class_id
OGRStyleTool derived class types (returned by GetType()).
Definition ogr_core.h:1082
OGRSTCBrush
@ OGRSTCBrush
Brush.
Definition ogr_core.h:1085
OGRSTCVector
@ OGRSTCVector
Vector.
Definition ogr_core.h:1088
OGRSTCNone
@ OGRSTCNone
None.
Definition ogr_core.h:1083
OGRSTCLabel
@ OGRSTCLabel
Label.
Definition ogr_core.h:1087
OGRSTCPen
@ OGRSTCPen
Pen.
Definition ogr_core.h:1084
OGRSTCSymbol
@ OGRSTCSymbol
Symbol.
Definition ogr_core.h:1086
OGR_GT_Flatten
OGRwkbGeometryType OGR_GT_Flatten(OGRwkbGeometryType eType)
Returns the 2D geometry type corresponding to the passed geometry type.
Definition ogrgeometry.cpp:7647
ogr_style_tool_param_pen_id
ogr_style_tool_param_pen_id
List of parameters for use with OGRStylePen.
Definition ogr_core.h:1108
OGRSTPenId
@ OGRSTPenId
Id.
Definition ogr_core.h:1112
OGRSTPenCap
@ OGRSTPenCap
Cap.
Definition ogr_core.h:1114
OGRSTPenPerOffset
@ OGRSTPenPerOffset
Perpendicular offset.
Definition ogr_core.h:1113
OGRSTPenWidth
@ OGRSTPenWidth
Width.
Definition ogr_core.h:1110
OGRSTPenColor
@ OGRSTPenColor
Color.
Definition ogr_core.h:1109
OGRSTPenJoin
@ OGRSTPenJoin
Join.
Definition ogr_core.h:1115
OGRSTPenPriority
@ OGRSTPenPriority
Priority.
Definition ogr_core.h:1116
OGRSTPenPattern
@ OGRSTPenPattern
Pattern.
Definition ogr_core.h:1111
OGR_GT_IsNonLinear
int OGR_GT_IsNonLinear(OGRwkbGeometryType)
Return if a geometry type is a non-linear geometry type.
Definition ogrgeometry.cpp:8098
OGRERR_UNSUPPORTED_SRS
#define OGRERR_UNSUPPORTED_SRS
Unsupported SRS.
Definition ogr_core.h:379
OGR_GT_HasZ
int OGR_GT_HasZ(OGRwkbGeometryType eType)
Return if the geometry type is a 3D geometry type.
Definition ogrgeometry.cpp:7671
OGRFieldDomainSplitPolicy
OGRFieldDomainSplitPolicy
Split policy for field domains.
Definition ogr_core.h:1233
OFDSP_DEFAULT_VALUE
@ OFDSP_DEFAULT_VALUE
Default value.
Definition ogr_core.h:1235
OFDSP_DUPLICATE
@ OFDSP_DUPLICATE
Duplicate.
Definition ogr_core.h:1237
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:1240
OGRCodedValue
Associates a code and a value.
Definition ogr_core.h:1203
OGRCodedValue::pszValue
char * pszValue
Value.
Definition ogr_core.h:1208
OGRCodedValue::pszCode
char * pszCode
Code.
Definition ogr_core.h:1205
OGRField
OGRFeature field attribute value union.
Definition ogr_core.h:886