GDAL
|
Definition of a geometry field of an OGRFeatureDefn. More...
#include <ogr_feature.h>
Public Member Functions | |
OGRGeomFieldDefn (const char *pszNameIn, OGRwkbGeometryType eGeomTypeIn) | |
Constructor. More... | |
OGRGeomFieldDefn (const OGRGeomFieldDefn *) | |
Constructor. More... | |
void | SetName (const char *) |
Reset the name of this field. More... | |
const char * | GetNameRef () const |
Fetch name of this field. More... | |
OGRwkbGeometryType | GetType () const |
Fetch geometry type of this field. More... | |
void | SetType (OGRwkbGeometryType eTypeIn) |
Set the geometry type of this field. More... | |
virtual const OGRSpatialReference * | GetSpatialRef () const |
Fetch spatial reference system of this field. More... | |
void | SetSpatialRef (const OGRSpatialReference *poSRSIn) |
Set the spatial reference of this field. More... | |
int | IsIgnored () const |
Return whether this field should be omitted when fetching features. More... | |
void | SetIgnored (int bIgnoreIn) |
Set whether this field should be omitted when fetching features. More... | |
int | IsNullable () const |
Return whether this geometry field can receive null values. More... | |
void | SetNullable (int bNullableIn) |
Set whether this geometry field can receive null values. More... | |
const OGRGeomCoordinatePrecision & | GetCoordinatePrecision () const |
Return the coordinate precision associated to this geometry field. More... | |
void | SetCoordinatePrecision (const OGRGeomCoordinatePrecision &prec) |
Set coordinate precision associated to this geometry field. More... | |
int | IsSame (const OGRGeomFieldDefn *) const |
Test if the geometry field definition is identical to the other one. More... | |
void | Seal () |
Seal a OGRGeomFieldDefn. More... | |
void | Unseal () |
Unseal a OGRGeomFieldDefn. More... | |
TemporaryUnsealer | GetTemporaryUnsealer () |
Return an object that temporary unseals the OGRGeomFieldDefn. More... | |
Static Public Member Functions | |
static OGRGeomFieldDefnH | ToHandle (OGRGeomFieldDefn *poGeomFieldDefn) |
Convert a OGRGeomFieldDefn* to a OGRGeomFieldDefnH. More... | |
static OGRGeomFieldDefn * | FromHandle (OGRGeomFieldDefnH hGeomFieldDefn) |
Convert a OGRGeomFieldDefnH to a OGRGeomFieldDefn*. More... | |
Definition of a geometry field of an OGRFeatureDefn.
A geometry field is described by :
Note that once a OGRGeomFieldDefn has been added to a layer definition with OGRLayer::AddGeomFieldDefn(), its setter methods should not be called on the object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn(). Instead, OGRLayer::AlterGeomFieldDefn() should be called on a new instance of OGRFieldDefn, for drivers that support AlterFieldDefn().
OGRGeomFieldDefn::OGRGeomFieldDefn | ( | const char * | pszNameIn, |
OGRwkbGeometryType | eGeomTypeIn | ||
) |
Constructor.
pszNameIn | the name of the new field. |
eGeomTypeIn | the type of the new field. |
|
explicit |
Constructor.
Create by cloning an existing geometry field definition.
poPrototype | the geometry field definition to clone. |
|
inlinestatic |
Convert a OGRGeomFieldDefnH to a OGRGeomFieldDefn*.
|
inline |
Return the coordinate precision associated to this geometry field.
This method is the same as the C function OGR_GFld_GetCoordinatePrecision().
|
inline |
Fetch name of this field.
This method is the same as the C function OGR_GFld_GetNameRef().
|
virtual |
Fetch spatial reference system of this field.
This method is the same as the C function OGR_GFld_GetSpatialRef().
OGRGeomFieldDefn::TemporaryUnsealer OGRGeomFieldDefn::GetTemporaryUnsealer | ( | ) |
Return an object that temporary unseals the OGRGeomFieldDefn.
The returned object calls Unseal() initially, and when it is destroyed it calls Seal().
This method should only be called by driver implementations.
It is also possible to use the helper method whileUnsealing(). Example: whileUnsealing(poGeomFieldDefn)->some_method()
|
inline |
Fetch geometry type of this field.
This method is the same as the C function OGR_GFld_GetType().
|
inline |
Return whether this field should be omitted when fetching features.
This method is the same as the C function OGR_GFld_IsIgnored().
|
inline |
Return whether this geometry field can receive null values.
By default, fields are nullable.
Even if this method returns FALSE (i.e not-nullable field), it doesn't mean that OGRFeature::IsFieldSet() will necessary return TRUE, as fields can be temporary unset and null/not-null validation is usually done when OGRLayer::CreateFeature()/SetFeature() is called.
Note that not-nullable geometry fields might also contain 'empty' geometries.
This method is the same as the C function OGR_GFld_IsNullable().
int OGRGeomFieldDefn::IsSame | ( | const OGRGeomFieldDefn * | poOtherFieldDefn | ) | const |
Test if the geometry field definition is identical to the other one.
poOtherFieldDefn | the other field definition to compare to. |
void OGRGeomFieldDefn::Seal | ( | ) |
Seal a OGRGeomFieldDefn.
A sealed OGRGeomFieldDefn can not be modified while it is sealed.
This method should only be called by driver implementations.
void OGRGeomFieldDefn::SetCoordinatePrecision | ( | const OGRGeomCoordinatePrecision & | prec | ) |
Set coordinate precision associated to this geometry field.
This method is the same as the C function OGR_GFld_SetCoordinatePrecision().
Note that once a OGRGeomFieldDefn has been added to a layer definition with OGRLayer::AddGeomFieldDefn(), its setter methods should not be called on the object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn().
prec | Coordinate precision |
|
inline |
Set whether this field should be omitted when fetching features.
This method is the same as the C function OGR_GFld_SetIgnored().
This method should not be called on a object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn(). Instead, the OGRLayer::SetIgnoredFields() method should be called.
ignore | ignore state |
void OGRGeomFieldDefn::SetName | ( | const char * | pszNameIn | ) |
Reset the name of this field.
This method is the same as the C function OGR_GFld_SetName().
Note that once a OGRGeomFieldDefn has been added to a layer definition with OGRLayer::AddGeomFieldDefn(), its setter methods should not be called on the object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn(). Instead, OGRLayer::AlterGeomFieldDefn() should be called on a new instance of OGRFieldDefn, for drivers that support AlterFieldDefn().
pszNameIn | the new name to apply. |
void OGRGeomFieldDefn::SetNullable | ( | int | bNullableIn | ) |
Set whether this geometry field can receive null values.
By default, fields are nullable, so this method is generally called with FALSE to set a not-null constraint.
Drivers that support writing not-null constraint will advertise the GDAL_DCAP_NOTNULL_GEOMFIELDS driver metadata item.
This method is the same as the C function OGR_GFld_SetNullable().
Note that once a OGRGeomFieldDefn has been added to a layer definition with OGRLayer::AddGeomFieldDefn(), its setter methods should not be called on the object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn(). Instead, OGRLayer::AlterGeomFieldDefn() should be called on a new instance of OGRFieldDefn, for drivers that support AlterFieldDefn().
bNullableIn | FALSE if the field must have a not-null constraint. |
void OGRGeomFieldDefn::SetSpatialRef | ( | const OGRSpatialReference * | poSRSIn | ) |
Set the spatial reference of this field.
This method is the same as the C function OGR_GFld_SetSpatialRef().
This method drops the reference of the previously set SRS object and acquires a new reference on the passed object (if non-NULL).
Note that once a OGRGeomFieldDefn has been added to a layer definition with OGRLayer::AddGeomFieldDefn(), its setter methods should not be called on the object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn(). Instead, OGRLayer::AlterGeomFieldDefn() should be called on a new instance of OGRFieldDefn, for drivers that support AlterFieldDefn().
poSRSIn | the new SRS to apply. |
void OGRGeomFieldDefn::SetType | ( | OGRwkbGeometryType | eTypeIn | ) |
Set the geometry type of this field.
This should never be done to an OGRGeomFieldDefn that is already part of an OGRFeatureDefn.
This method is the same as the C function OGR_GFld_SetType().
Note that once a OGRGeomFieldDefn has been added to a layer definition with OGRLayer::AddGeomFieldDefn(), its setter methods should not be called on the object returned with OGRLayer::GetLayerDefn()->GetGeomFieldDefn(). Instead, OGRLayer::AlterGeomFieldDefn() should be called on a new instance of OGRFieldDefn, for drivers that support AlterFieldDefn().
eTypeIn | the new field geometry type. |
|
inlinestatic |
Convert a OGRGeomFieldDefn* to a OGRGeomFieldDefnH.
void OGRGeomFieldDefn::Unseal | ( | ) |
Unseal a OGRGeomFieldDefn.
Using GetTemporaryUnsealer() is recommended for most use cases.
This method should only be called by driver implementations.