30 #ifndef OGRUNIONLAYER_H_INCLUDED 31 #define OGRUNIONLAYER_H_INCLUDED 47 OGREnvelope sStaticEnvelope;
51 explicit OGRUnionLayerGeomFieldDefn(OGRUnionLayerGeomFieldDefn* poSrc);
52 ~OGRUnionLayerGeomFieldDefn();
61 FIELD_FROM_FIRST_LAYER,
62 FIELD_UNION_ALL_LAYERS,
63 FIELD_INTERSECTION_ALL_LAYERS,
67 class OGRUnionLayer :
public OGRLayer 73 int bHasLayerOwnership;
79 OGRUnionLayerGeomFieldDefn **papoGeomFields;
80 FieldUnionStrategy eFieldStrategy;
88 char *pszAttributeFilter;
91 char **papszIgnoredFields;
92 int bAttrFilterPassThroughValue;
93 int *pabModifiedLayers;
94 int *pabCheckIfAutoWrap;
97 void AutoWarpLayerIfNecessary(
int iSubLayer);
99 void ApplyAttributeFilterToSrcLayer(
int iSubLayer);
100 int GetAttrFilterPassThroughValue();
101 void ConfigureActiveLayer();
102 void SetSpatialFilterToSourceLayer(
OGRLayer* poSrcLayer);
105 OGRUnionLayer(
const char* pszName,
108 int bTakeLayerOwnership);
110 virtual ~OGRUnionLayer();
114 void SetFields(FieldUnionStrategy eFieldStrategy,
118 OGRUnionLayerGeomFieldDefn** papoGeomFields );
119 void SetSourceLayerFieldName(
const char* pszSourceLayerFieldName);
120 void SetPreserveSrcFID(
int bPreserveSrcFID);
121 void SetFeatureCount(
int nFeatureCount);
122 virtual const char *GetName()
override {
return osName.c_str(); }
125 virtual void ResetReading()
override;
126 virtual OGRFeature *GetNextFeature()
override;
138 virtual GIntBig GetFeatureCount(
int )
override;
140 virtual OGRErr SetAttributeFilter(
const char * )
override;
142 virtual int TestCapability(
const char * )
override;
144 virtual OGRErr GetExtent(
int iGeomField, OGREnvelope *psExtent,
int bForce = TRUE)
override;
145 virtual OGRErr GetExtent( OGREnvelope *psExtent,
int bForce )
override;
147 virtual void SetSpatialFilter(
OGRGeometry * poGeomIn )
override;
148 virtual void SetSpatialFilter(
int iGeomField,
OGRGeometry * )
override;
150 virtual OGRErr SetIgnoredFields(
const char **papszFields )
override;
152 virtual OGRErr SyncToDisk()
override;
157 #endif // OGRUNIONLAYER_H_INCLUDED Definition of a geometry field of an OGRFeatureDefn.
Definition: ogr_feature.h:141
Convenient string class based on std::string.
Definition: cpl_string.h:338
Definition of a feature class or feature layer.
Definition: ogr_feature.h:207
Definition of an attribute of an OGRFeatureDefn.
Definition: ogr_feature.h:62
OGRwkbGeometryType
List of well known binary geometry types.
Definition: ogr_core.h:312
Abstract base class for all geometry classes.
Definition: ogr_geometry.h:118
Classes related to registration of format support, and opening datasets.
This class represents an OpenGIS Spatial Reference System, and contains methods for converting betwee...
Definition: ogr_spatialref.h:132
This class represents a layer of simple features, with access methods.
Definition: ogrsf_frmts.h:68
A simple feature, including geometry and attributes.
Definition: ogr_feature.h:279
long long GIntBig
Large signed integer type (generally 64-bit integer type).
Definition: cpl_port.h:250
int OGRErr
Simple container for a bounding region.
Definition: ogr_core.h:285