31 #ifndef OGRSF_FRMTS_H_INCLUDED 32 #define OGRSF_FRMTS_H_INCLUDED 34 #include "cpl_progress.h" 37 #include "gdal_priv.h" 45 #if !defined(GDAL_COMPILATION) && !defined(SUPPRESS_DEPRECATION_WARNINGS) 46 #define OGR_DEPRECATED(x) CPL_WARN_DEPRECATED(x) 48 #define OGR_DEPRECATED(x) 66 class CPL_DLL
OGRLayer :
public GDALMajorObject
69 void ConvertGeomsIfNecessary(
OGRFeature *poFeature );
72 int m_bFilterIsEnvelope;
74 OGRPreparedGeometry *m_pPreparedFilterGeom;
76 int m_iGeomFieldFilter;
83 OGRErr GetExtentInternal(
int iGeomField,
OGREnvelope *psExtent,
int bForce );
85 virtual OGRErr ISetFeature(
OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
86 virtual OGRErr ICreateFeature(
OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
94 virtual void SetSpatialFilterRect(
double dfMinX,
double dfMinY,
95 double dfMaxX,
double dfMaxY );
97 virtual void SetSpatialFilter(
int iGeomField,
OGRGeometry * );
98 virtual void SetSpatialFilterRect(
int iGeomField,
99 double dfMinX,
double dfMinY,
100 double dfMaxX,
double dfMaxY );
102 virtual OGRErr SetAttributeFilter(
const char * );
104 virtual void ResetReading() = 0;
105 virtual OGRFeature *GetNextFeature() CPL_WARN_UNUSED_RESULT = 0;
106 virtual OGRErr SetNextByIndex( GIntBig nIndex );
107 virtual OGRFeature *GetFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT;
109 OGRErr SetFeature(
OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
110 OGRErr CreateFeature(
OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT;
112 virtual OGRErr DeleteFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT;
114 virtual const char *GetName();
117 virtual int FindFieldIndex(
const char *pszFieldName,
int bExactMatch );
121 virtual GIntBig GetFeatureCount(
int bForce = TRUE );
122 virtual OGRErr GetExtent(
OGREnvelope *psExtent,
int bForce = TRUE) CPL_WARN_UNUSED_RESULT;
123 virtual OGRErr GetExtent(
int iGeomField,
OGREnvelope *psExtent,
124 int bForce = TRUE) CPL_WARN_UNUSED_RESULT;
126 virtual int TestCapability(
const char * ) = 0;
129 int bApproxOK = TRUE );
130 virtual OGRErr DeleteField(
int iField );
131 virtual OGRErr ReorderFields(
int* panMap );
132 virtual OGRErr AlterFieldDefn(
int iField,
OGRFieldDefn* poNewFieldDefn,
int nFlagsIn );
135 int bApproxOK = TRUE );
137 virtual OGRErr SyncToDisk();
140 virtual void SetStyleTableDirectly(
OGRStyleTable *poStyleTable );
144 virtual OGRErr StartTransaction() CPL_WARN_UNUSED_RESULT;
145 virtual OGRErr CommitTransaction() CPL_WARN_UNUSED_RESULT;
146 virtual OGRErr RollbackTransaction();
148 virtual const char *GetFIDColumn();
149 virtual const char *GetGeometryColumn();
151 virtual OGRErr SetIgnoredFields(
const char **papszFields );
153 OGRErr Intersection(
OGRLayer *pLayerMethod,
155 char** papszOptions = NULL,
156 GDALProgressFunc pfnProgress = NULL,
157 void * pProgressArg = NULL );
158 OGRErr Union(
OGRLayer *pLayerMethod,
160 char** papszOptions = NULL,
161 GDALProgressFunc pfnProgress = NULL,
162 void * pProgressArg = NULL );
163 OGRErr SymDifference(
OGRLayer *pLayerMethod,
166 GDALProgressFunc pfnProgress,
167 void * pProgressArg );
168 OGRErr Identity(
OGRLayer *pLayerMethod,
170 char** papszOptions = NULL,
171 GDALProgressFunc pfnProgress = NULL,
172 void * pProgressArg = NULL );
173 OGRErr Update(
OGRLayer *pLayerMethod,
175 char** papszOptions = NULL,
176 GDALProgressFunc pfnProgress = NULL,
177 void * pProgressArg = NULL );
178 OGRErr Clip(
OGRLayer *pLayerMethod,
180 char** papszOptions = NULL,
181 GDALProgressFunc pfnProgress = NULL,
182 void * pProgressArg = NULL );
183 OGRErr Erase(
OGRLayer *pLayerMethod,
185 char** papszOptions = NULL,
186 GDALProgressFunc pfnProgress = NULL,
187 void * pProgressArg = NULL );
191 int GetRefCount()
const;
193 GIntBig GetFeaturesRead();
196 OGRErr ReorderField(
int iOldFieldPos,
int iNewFieldPos );
198 int AttributeFilterEvaluationNeedsGeometry();
201 OGRErr InitializeIndexSupport(
const char * );
207 char *m_pszAttrQueryString;
212 GIntBig m_nFeaturesRead;
243 virtual const char *GetName() OGR_DEPRECATED(
"Use GDALDataset class instead") = 0;
245 static void DestroyDataSource(
OGRDataSource * ) OGR_DEPRECATED(
"Use GDALDataset class instead");
275 virtual const char *GetName() OGR_DEPRECATED(
"Use GDALDriver class instead") = 0;
277 virtual OGRDataSource *Open(
const char *pszName,
int bUpdate=FALSE ) OGR_DEPRECATED(
"Use GDALDriver class instead") = 0;
279 virtual int TestCapability(
const char *pszCap ) OGR_DEPRECATED(
"Use GDALDriver class instead") = 0;
281 virtual OGRDataSource *CreateDataSource(
const char *pszName,
282 char ** = NULL ) OGR_DEPRECATED(
"Use GDALDriver class instead");
283 virtual OGRErr DeleteDataSource(
const char *pszName ) OGR_DEPRECATED(
"Use GDALDriver class instead");
308 ~OGRSFDriverRegistrar();
310 static GDALDataset* OpenWithDriverArg(GDALDriver* poDriver,
311 GDALOpenInfo* poOpenInfo);
312 static GDALDataset* CreateVectorOnly( GDALDriver* poDriver,
313 const char * pszName,
314 char ** papszOptions );
315 static CPLErr DeleteDataSource( GDALDriver* poDriver,
316 const char * pszName );
320 static OGRSFDriverRegistrar *GetRegistrar() OGR_DEPRECATED(
"Use GDALDriverManager class instead");
322 void RegisterDriver(
OGRSFDriver * poDriver ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
324 int GetDriverCount(
void ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
325 GDALDriver *GetDriver(
int iDriver ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
326 GDALDriver *GetDriverByName(
const char * ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
328 int GetOpenDSCount() OGR_DEPRECATED(
"Use GDALDriverManager class instead");
329 OGRDataSource *GetOpenDS(
int ) OGR_DEPRECATED(
"Use GDALDriverManager class instead");
337 void OGRRegisterAllInternal();
339 void CPL_DLL RegisterOGRFileGDB();
340 void CPL_DLL RegisterOGRShape();
341 void CPL_DLL RegisterOGRDB2();
342 void CPL_DLL RegisterOGRNTF();
343 void CPL_DLL RegisterOGRFME();
344 void CPL_DLL RegisterOGRSDTS();
345 void CPL_DLL RegisterOGRTiger();
346 void CPL_DLL RegisterOGRS57();
347 void CPL_DLL RegisterOGRTAB();
348 void CPL_DLL RegisterOGRMIF();
349 void CPL_DLL RegisterOGROGDI();
350 void CPL_DLL RegisterOGRODBC();
351 void CPL_DLL RegisterOGRWAsP();
352 void CPL_DLL RegisterOGRPG();
353 void CPL_DLL RegisterOGRMSSQLSpatial();
354 void CPL_DLL RegisterOGRMySQL();
355 void CPL_DLL RegisterOGROCI();
356 void CPL_DLL RegisterOGRDGN();
357 void CPL_DLL RegisterOGRGML();
358 void CPL_DLL RegisterOGRLIBKML();
359 void CPL_DLL RegisterOGRKML();
360 void CPL_DLL RegisterOGRGeoJSON();
361 void CPL_DLL RegisterOGRAVCBin();
362 void CPL_DLL RegisterOGRAVCE00();
363 void CPL_DLL RegisterOGRREC();
364 void CPL_DLL RegisterOGRMEM();
365 void CPL_DLL RegisterOGRVRT();
366 void CPL_DLL RegisterOGRDODS();
367 void CPL_DLL RegisterOGRSQLite();
368 void CPL_DLL RegisterOGRCSV();
369 void CPL_DLL RegisterOGRILI1();
370 void CPL_DLL RegisterOGRILI2();
371 void CPL_DLL RegisterOGRGRASS();
372 void CPL_DLL RegisterOGRPGeo();
373 void CPL_DLL RegisterOGRDXFDWG();
374 void CPL_DLL RegisterOGRDXF();
375 void CPL_DLL RegisterOGRDWG();
376 void CPL_DLL RegisterOGRSDE();
377 void CPL_DLL RegisterOGRIDB();
378 void CPL_DLL RegisterOGRGMT();
379 void CPL_DLL RegisterOGRBNA();
380 void CPL_DLL RegisterOGRGPX();
381 void CPL_DLL RegisterOGRGeoconcept();
382 void CPL_DLL RegisterOGRIngres();
383 void CPL_DLL RegisterOGRXPlane();
384 void CPL_DLL RegisterOGRNAS();
385 void CPL_DLL RegisterOGRGeoRSS();
386 void CPL_DLL RegisterOGRGTM();
387 void CPL_DLL RegisterOGRVFK();
388 void CPL_DLL RegisterOGRPGDump();
389 void CPL_DLL RegisterOGROSM();
390 void CPL_DLL RegisterOGRGPSBabel();
391 void CPL_DLL RegisterOGRSUA();
392 void CPL_DLL RegisterOGROpenAir();
393 void CPL_DLL RegisterOGRPDS();
394 void CPL_DLL RegisterOGRWFS();
395 void CPL_DLL RegisterOGRSOSI();
396 void CPL_DLL RegisterOGRHTF();
397 void CPL_DLL RegisterOGRAeronavFAA();
398 void CPL_DLL RegisterOGRGeomedia();
399 void CPL_DLL RegisterOGRMDB();
400 void CPL_DLL RegisterOGREDIGEO();
401 void CPL_DLL RegisterOGRGFT();
402 void CPL_DLL RegisterOGRSVG();
403 void CPL_DLL RegisterOGRCouchDB();
404 void CPL_DLL RegisterOGRCloudant();
405 void CPL_DLL RegisterOGRIdrisi();
406 void CPL_DLL RegisterOGRARCGEN();
407 void CPL_DLL RegisterOGRSEGUKOOA();
408 void CPL_DLL RegisterOGRSEGY();
409 void CPL_DLL RegisterOGRXLS();
410 void CPL_DLL RegisterOGRODS();
411 void CPL_DLL RegisterOGRXLSX();
412 void CPL_DLL RegisterOGRElastic();
413 void CPL_DLL RegisterOGRGeoPackage();
414 void CPL_DLL RegisterOGRWalk();
415 void CPL_DLL RegisterOGRCarto();
416 void CPL_DLL RegisterOGRCartoDB();
417 void CPL_DLL RegisterOGRAmigoCloud();
418 void CPL_DLL RegisterOGRSXF();
419 void CPL_DLL RegisterOGROpenFileGDB();
420 void CPL_DLL RegisterOGRSelafin();
421 void CPL_DLL RegisterOGRJML();
422 void CPL_DLL RegisterOGRPLSCENES();
423 void CPL_DLL RegisterOGRCSW();
424 void CPL_DLL RegisterOGRMongoDB();
425 void CPL_DLL RegisterOGRVDV();
Definition: ogrsf_frmts.h:238
void OGRRegisterAll()
Register all drivers.
Definition: ogrregisterall.cpp:39
Definition: ogr_feature.h:143
Definition: ogr_feature.h:206
Definition: ogr_feature.h:62
OGRwkbGeometryType
Definition: ogr_core.h:333
Definition: ogr_geometry.h:104
Definition: ogr_feature.h:461
Definition: ogr_spatialref.h:129
Definition: ogrsf_frmts.h:304
Definition: ogr_core.h:48
Definition: ogrsf_frmts.h:66
Definition: ogr_feature.h:274
Definition: ogr_featurestyle.h:82
Definition: ogr_attrind.h:66
Definition: ogrsf_frmts.h:270